1
  1. Visual Studio 设计器在尝试呈现 WinForms 类时调用了哪些方法?
  2. 当 Winforms 类继承自另一个 WinForms 类时会发生什么?
4

2 回答 2

1

所以在实验之后我发现:

  1. 如果您在具有 YourClass.Designer.cs 文件的 VS Designer 中打开表单,则:
    • YourClass.Designer.cs 中定义的属性/字段将是新的
    • 将调用“InitializeComponent()”方法

注意:奇怪的是,您的构造函数不会被调用,您可以通过以下方式向自己证明这一点(注意,Designer 可以使用以下代码):

public class YourClass ... {
   public YourClass() {
     throw new Exception("Ha (1)!");
     InitializeComponent();
     throw new Exception("Ha (2)!");
   }
}
  1. 如果该类没有 SomeControl.Designer.cs 文件,或者它是您在 VS 设计器中打开的类中的组件,则将调用该组件的构造函数。您可以使用上面的示例再次对此进行测试。
于 2016-05-11T15:04:04.207 回答
0

当 Winforms 类继承自另一个 WinForms 类时会发生什么?

过去,我使用 WinForm 继承来强制表单之间的标准布局 - 有点像主表单。在设计模式下,添加到父窗体的任何控件都将显示在子窗体中。您不能直接从子表单设计器编辑父表单。

于 2012-11-19T20:44:06.910 回答