寻找控件的Post-Constructor事件

时间:2014-07-03 14:29:08

标签: c# winforms constructor controls paint

我创建了一个Label子类,需要初始化它的一些属性。

我可以在构造函数中设置一些,但是其他一些在表单的设计器代码中被重置,所以必须设置它们

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

当然,控件应该是自给自足的,因此我无法在表单代码中添加任何内容。

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

它适用于正在运行的Form和VS Designer窗口..但是我闻到了一面旗帜

那么可能有一种更好的,没有标志的方式吗?还是正确的方式?

1 个答案:

答案 0 :(得分:2)

覆盖InitLayout方法。

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