C# Windows Forms Design-time Form constructor not

2019-03-06 05:48发布

Is the constructor of a form not called upon opening the form in design view? Why not? Can I somehow force it to be called? I tested it by showing a MessageBox in the constructor, and only the MessageBox from the constructor of the form's base type (another form) is shown...

1条回答
Juvenile、少年°
2楼-- · 2019-03-06 06:24

This behavior is by design. The form designer in Visual Studio cannot instantiate the class being designed — instead, it instatiates its immediate parent. There is no way to change this behavior. If you need some logic to be executed during design time, you have to create a separate ancestor encapsulating that logic and inherit from it.

That's also the reason why in order to be able to use the designer you cannot inherit a form from an abstract or generic class.

查看更多
登录 后发表回答