继承自C#中的表单

时间:2011-03-22 17:01:56

标签: .net forms inheritance

我有几个已经存在的表格,比方说CUSTOMERS和ORDERS,并计划创建六个以上。在C#中,它们是部分类。

         public partial class CUSTOMERSFORM : Form
         public partial class ORDERSFORM : Form

现在我已经决定,如果所有这些表单共享的一些通用属性和方法(不是GUI功能,但我的数据中间件的一些粘合代码)可以继承,那就好了。

我可以简单地创建没有可视组件的MyBaseForm,在MyBaseForm中安装这些属性和方法,然后像这样修改现有代码吗?

        public partial class CUSTOMERSFORM : MyBaseForm
        public partial class ORDERSFORM : MyBaseForm

如果可以实现上述目标,那么我添加到现有客户和订单表单中的所有视觉设计是否仍然保持不变?是否会破坏任何东西(假设没有方法或属性命名冲突)?

编辑:MDI会在这里抛出任何曲线球吗?

由于

3 个答案:

答案 0 :(得分:2)

是的,这是支持的场景以及WinForms代码库的功能。

public class MyBaseForm : Form {
  public string MyProperty { get; set; }
}

public partial class CUSTOMERS : MyBaseForm {
  ...
}

public partial class ORDERS : MyBaseForm { 
  ...
}

答案 1 :(得分:0)

是的,只是尝试将Form1:Form添加到项目中,然后创建一个简单的类Class1:Form1。您还可以使用“继承的表单”从其他程序集中继承表单。

答案 2 :(得分:0)

您可以在应用程序中创建一个继承自System.Windows.Forms.Form的简单类。

正如您所说,您可以从新类继承当前表单并实现属性。表单的可视组件将保持不变,因为这些组件在现有表单的设计器中指定。

public class CustomForm : System.Windows.Forms.Form
{

  //Declaring a protected property will give access ot it for inherieted forms only
  protected object YourProperty
  {
     get;set;
  }

}