2014-04-22 56 views
2

在c#中我們添加了任何新的窗體窗體,而窗體默認是從Form類繼承的,所以我想看到這個Form類,我想改變默認的Form類爲我的項目。

那麼,這個Form類在哪裏以及我如何改變它?如何訪問C#中的Form類?

我有很多形式。並且所有窗體的加載事件和調整大小事件都包含以下代碼。

private void frmBranchDetails_Resize(object sender, EventArgs e) 
{ 
    panel1.Left = (this.ClientSize.Width - panel1.Width)/2; 
    panel1.Top = (this.ClientSize.Height - panel1.Height)/2; 
} 

private void frmBranchDetails_Load(object sender, EventArgs e) 
{ 
    this.WindowState = FormWindowState.Maximized; 
} 

所以我想在當我們添加任何新的形式,這是繼承了內置Form類只有一次寫上面的代碼。

所以不要在所有的窗體中重複寫上面的代碼。

所以我想當我添加任何新窗體,然後上面的代碼自動添加,因爲任何窗體是默認的Form類繼承。所以我想在Form類中寫上面的代碼。

但是,這個默認的Form類以及如何在該類中編寫上面的代碼不知道,所以這是我的問題。

+0

我們錯過了很多細節,在這裏有所幫助。你如何添加新的表格,以及你期望找到他們的地方? – Sklivvz

+0

我認爲你想要做的不是正確的思考方式。你的窗體類繼承了Form類,這樣你就可以在需要的時候重新實現窗體的功能。所以,你永遠不需要改變任何'Form'的代碼。 –

+0

對不起,我的壞方法提問。 – user3216114

回答

4

您不能在System.Windows.Forms中更改任何內容。但是你可以做的是:

  1. 創建一個繼承自System.Windows.Forms的父窗體。

    public partial class ParentForm: System.Windows.Forms 
    
  2. ParentForm中添加您需要的功能。

  3. 創建從此ParentForm繼承的所有其他形式。像:

    public partial class NewForm: ParentForm 
    

也就是說傳承之美。

編輯:

對於您的問題:

創建像ParentForm:

public partial class baseForm : Form 
{ 
    public baseForm() 
    { 
     this.Load += new System.EventHandler(this.FormLoad); 
     this.Resize += new System.EventHandler(this.frmBranchDetails_Resize);   
    } 
    protected virtual void FormLoad(object sender, EventArgs e)   
    {    
     this.WindowState = FormWindowState.Maximized;   
    } 

    private void frmBranchDetails_Resize(object sender, EventArgs e) 
    { 
     panel1.Left = (this.ClientSize.Width - panel1.Width)/2; 
     panel1.Top = (this.ClientSize.Height - panel1.Height)/2; 
    } 
} 

注:該panel1應在baseForm才能訪問它被創建。

然後創建NewForm格式如:

public partial class NewForm: baseForm 
{ 
} 

現在NewForm形式已經具備了這兩方面的功能。

+0

非常感謝。 – user3216114

+0

'public partial class Base:Form { public Base() this.Load + = new System.EventHandler(this.FormLoad); } protected virtual void FormLoad(object sender,EventArgs e) this.WindowState = FormWindowState.Maximized; } }' – user3216114

+0

@ user3216114:你想添加這兩個功能,對吧?我會編輯我的答案。 –