代码改变世界

C# WinForm窗体继承时,需要注意的问题

2012-08-01 11:12  清潭荷韵  阅读(18111)  评论(2编辑  收藏  举报

情境:先定义了一个父窗体FormParent,然后从FormParent派生出子窗体FormSub。

 

注意一:当新建FormSub时,最好是通过新建一个窗体,而不是新建一个类,然后再修改FormSub的父类为FormParent。因为新建一个窗体会自动生成一个窗体可视设计器对应的partial类,这样能保证FormSub的组件初始化代码与逻辑代码分离为两个文件。而如果通过新建一个类的方式,会导致FormSub可视化设计器生成的代码在本身的类中。

 

注意二:如果想在FormSub中再修改从FormParent继承过来的控件的属性,需要在FormParent中,把控件的Modifiers属性改为Protected或Public。

 

注意三:为了保证子窗体FormSub可视化设计的正常进行,在FormParent的无参构造函数和Load事件的响应函数中尽量不调用非托管资源、不调用Native Code等。因为FormSub窗体的可视化设计器打开时会调用父窗体的无参构造函数和Load事件。