2011-03-22 60 views
2

我有幾個已經存在的窗體,比如客戶和訂單,並計劃創建另外六個窗體。在C#中,它們是部分類。繼承自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在這裏拋出任何曲線球嗎?

感謝

回答

1

是的,這是受支持的場景和多少WinForms代碼庫的功能。

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

public partial class CUSTOMERS : MyBaseForm { 
    ... 
} 

public partial class ORDERS : MyBaseForm { 
    ... 
} 
0

呀,只是儘量到Form1中添加:從到項目,然後創建一個簡單的類的Class1:Form1上。您還可以使用繼承的窗體從其他程序集的窗體繼承。

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; 
    } 

}