WinForm窗体继承

在Windows应用程序中,从现有的窗体继承,查看子窗体的设计视图时,会出现错误:

服务容器中已存在服务 System.Windows.Forms.Design.IEventHandlerService。参数名: serviceType 

或出现错误:未将对象引用设置到对象的实例。

解决方法:

把父窗体中Form_Load事件里所有代码都放在!DesignMode里,即

private void Form_Load(...)
{
  if(!DesignMode)
  {
    //代码放在这儿
  }
}

如果父窗体的构造方法中也有自己写的代码,也得放if(!DesignMode)里。

然后重新生成项目,即可看到子窗体的设计视图。

继承过来的子窗体,窗体上的控件都处在锁定状态,如果要编辑,需要在控件的属性面板中把控件的Modifiers属性改成public。

posted @ 2015-03-22 16:31  zhouhb  阅读(8000)  评论(0编辑  收藏  举报