【问题标题】:Show dynamically created controls in Windows Forms designer在 Windows 窗体设计器中显示动态创建的控件
【发布时间】:2012-03-10 03:08:33
【问题描述】:

有没有办法立即查看通过设计器中的代码创建的控件,而不仅仅是在执行期间?

【问题讨论】:

  • 哪个设计师? WPF? Windows 窗体?
  • 通常您可以直接在设计器中看到它们。您指的是哪种控制方式?请详细说明。
  • 标签、文本框、组框。我一个都没看到。
  • 哦,我想我的问题弄错了……您看不到在运行时创建的控件,而这些控件不在设计器创建的文件中。这怎么可能?
  • 例如,我在构造函数中更改了表单的名称,但没有反映给设计人员,因为它仍然显示名称为 Form1。

标签: c# winforms designer


【解决方案1】:

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

如果您对希望动态创建的控件在设计模式下的显示方式有特定的逻辑,则必须创建自定义控件并实现设计时绘图代码。这在此处的“定制设计体验”标题下有所提及:http://msdn.microsoft.com/en-us/library/ms171725.aspx

【讨论】:

    【解决方案2】:

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

    这实际上是不可能的,因为设计者必须 1) 解析您的代码或 2) 执行它以将所有更改应用到控件。

    选项 1 不起作用,因为表达式评估仅在运行代码时才起作用...这将我们引向选项 2:让设计器运行您的代码以找出 动态 添加的属性?首先,自动运行不受信任的代码不是您想要的。其次,在设计器中动态而不是静态进行这些更改肯定是有原因的,因此将动态更改显示为所见即所得甚至没有意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      相关资源
      最近更新 更多