我创建了一个Label
子类,需要初始化它的一些属性。
我可以在构造函数中设置一些,但是其他一些在表单的设计器代码中被重置,所以必须设置它们
InitializeComponent
Paint
事件运行之前,需要它们。当然,控件应该是自给自足的,因此我无法在表单代码中添加任何内容。
我现在正在使用解决方法:我设置了一个标记bool needsInit = true;
,我在Paint
事件中检查了该标记。如果为true,我调用doInit()
方法,清除标志并进行初始化。
它适用于正在运行的Form和VS Designer窗口..但是我闻到了一面旗帜
那么可能有一种更好的,没有标志的方式吗?还是正确的方式?
答案 0 :(得分:2)
覆盖InitLayout方法。
protected override void InitLayout()
{
// do something here
base.InitLayout();
}