C# 在Windows窗体设计器中显示动态创建的控件

C# 在Windows窗体设计器中显示动态创建的控件,c#,winforms,designer,C#,Winforms,Designer,是否有一种方法可以立即查看设计器中通过代码创建的控件,而不仅仅是在执行过程中?设计器只能显示设计时存在的控件或显示数据绑定控件的示例控件。如果您考虑在运行时根据变量动态创建文本框或标签的代码,设计师如何知道在设计模式下显示哪个文本框或标签 如果您希望动态创建的控件在设计模式下显示的方式具有特定逻辑,则必须创建自定义控件并实现设计时图形代码。这在这里的自定义设计体验标题下提到:Windows窗体设计器仅应用自动生成的文件“Form1.designer.cs”(示例文件名为“Form1”)中包含的属

是否有一种方法可以立即查看设计器中通过代码创建的控件,而不仅仅是在执行过程中?

设计器只能显示设计时存在的控件或显示数据绑定控件的示例控件。如果您考虑在运行时根据变量动态创建文本框或标签的代码,设计师如何知道在设计模式下显示哪个文本框或标签


如果您希望动态创建的控件在设计模式下显示的方式具有特定逻辑,则必须创建自定义控件并实现设计时图形代码。这在这里的自定义设计体验标题下提到:

Windows窗体设计器仅应用自动生成的文件“Form1.designer.cs”(示例文件名为“Form1”)中包含的属性。如果您在自己的代码中更改属性(如文本、颜色等)或创建新控件,即在“Form1.cs”中,则设计器不会显示它

这实际上是不可能的,因为设计者要么1)解析代码,要么2)执行代码以将所有更改应用于控件


选项1不起作用,因为表达式求值仅在运行代码时起作用。。。这就引出了选项2:让运行代码的设计器发现动态添加的属性?首先,自动运行不受信任的代码不是您想要的。第二,在设计器中动态地而不是静态地进行这些更改肯定是有原因的,因此将动态更改显示为所见即所得根本没有意义。

哪个设计器?WPF?Windows窗体?通常您可以在设计器中直接看到它们。你指的是哪种控制?请详细说明。标签、文本框、分组框。我一个也没看到。哦,我想我把问题搞错了。。。您无法看到运行时创建的控件以及设计器创建的文件中没有的控件。这怎么可能呢?例如,我在构造函数中更改了表单的名称,但这并没有反映给设计器,因为它仍然将名称显示为Form1。