Visual Studio Designer在呈现WinForm时调用哪些方法?

时间:2012-11-19 20:22:39

标签: .net winforms visual-studio-2010 visual-studio

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

3 个答案:

答案 0 :(得分:1)

简单地说,即使存在表单继承,设计者也会调用表单的构造函数和所涉及的所有方法。

如果您想避免自己的组件/控件中的某些代码,可以检测设计模式是否已打开,

DesignMode with Controls

https://github.com/lextm/ActionListWinForms/issues/1

答案 1 :(得分:0)

  

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

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

答案 2 :(得分:0)

所以经过实验,我发现了:

  1. 如果要在VS Designer中打开具有YourClass.Designer.cs文件的表单,则:
    • YourClass.Designer.cs中定义的属性/字段将是新的
    • 将调用“InitializeComponent()”方法
  2. 注意:奇怪的是,您的构造函数将不会被调用,您可以使用以下内容向您自己证明(注意,Designer可以使用以下代码):

    PK_UserID, Firstname, Surname, Email, UserName, Password, LastLoggedIn, isLockedOut, isAuthorized, isActive
    
    1. 如果该类没有SomeControl.Designer.cs文件,或者它是您在VS Designer中打开的类中的组件,则将调用该组件的构造函数。您可以使用上面的示例再次对此进行测试。