2013-07-03 83 views
-1

我的WinForms防止其他的WinForms覆蓋父WinForm的性能

mainWinform 
winform1 
winform2 
winform3 ... 

winform1winform2winform3的列表中繼承mainWinform設計

我已經設置了一些winform像:

winform1到:

maximizeBox = false 
FormBorderStyle to Sizable 

winform2到:

maximizeBox = true 
FormBorderStyle to fixed 

因爲我從mainWinform繼承是有辦法,我可以通過設置mainWinform即使winform1已經將其設置爲maximizeBox = falseFormBorderStyle to Sizable設置每winformmaximizeBox = trueFormBorderStyle to Sizable

+0

只需在你的'mainWinform',其他衍生形式將覆蓋這些屬性的構造函數設置屬性如果需要的話。 –

+0

@KingKing完全並且完全不回答OP的問題。他在問是否有辦法阻止派生表單覆蓋這些屬性。 –

回答

1

爲了防止覆蓋父設置繼承的形式,你可以嘗試在父窗體類重寫OnStyleChanged

protected override void OnStyleChanged(EventArgs e) 
{ 
    if (this.MaximizeBox!=true) this.MaximizeBox = true; 
    base.OnStyleChanged(e); 
} 
0

您必須在繼承的form s的構造函數中設置這些屬性。例如:

public winform 
{ 
    //in this way you can inherit parent form properties and set them to child form 
    this.MaximizeBox = base.MaximizeBox; 
    this.FormBorderStyle = base.FormBorderStyle; 
    //or if you want to set it something else, then do like this 
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable; 
} 

您可以根據需要更改這些值。但是你必須把代碼放在構造函數中。