寻找控件的后构造函数事件

本文关键字:构造函数 事件 控件 寻找 | 更新日期: 2023-09-27 18:11:23

我已经做了一个Label子类,需要初始化它的一些属性。

有些可以在构造函数中设置,但其他的要在表单的设计器代码中重置,所以必须设置

  • 在设计师完成InitializeComponent
  • 但在Paint事件运行之前,需要它们到位。

当然,控件应该是自给自足的,所以我不能在表单的代码中添加任何东西。

我现在正在使用一个解决方案:我设置了一个标志bool needsInit = true;,我在Paint事件中检查。如果为true,则调用doInit()方法,该方法清除标志并进行初始化。

对于正在运行的窗体和VS设计器窗口都有效。但是我闻到了旗子

那么有没有更好的,无旗的方法呢?还是正确的方式?

寻找控件的后构造函数事件

重写InitLayout方法

protected override void InitLayout()
{
    // do something here
    base.InitLayout();
}