2015-07-21 62 views
0

在我父窗體我有這樣的命令,我添加子窗體到我的主要形式有:如何更改Windows窗體中的父級大小?

AddChildForm(new Form2()); 

在我的Form2我有一個複選框,並在每次複選框被選中時我必須改變我的主要形式,尺寸,但我不能得到這個工作,只有創建一個新的形式,比如:

Form1 main = new Form1(); 
main.Size = new System.Drawing.Size(482, 370); 
main.ShowDialog(); 
+1

我建議您不希望Form2更改Form1,而是希望Form2通知Form1它需要更改。看看匿名事件處理程序。 https://msdn.microsoft.com/en-us/library/ms366768.aspx – Tebc

回答

2

如果你不希望一個新的Form1不要創建它。

您可能需要一個參考到真正的主要形式。這應該在打開它的過程中或打開之後的某個時間設置,但是因爲您向我們展示的所有內容都是4條不清晰的線條,所以我們無法確定。

由於我們沒有看到AddChildForm代碼更難以猜測。

然而,有機會,你應該通過從開放形式的參考打開形式是這樣的:

AddChildForm(new Form2(this)); // <--- pass in reference to the opening form! 

而且它還有存儲這樣的:

Form1 mainForm = null; 

public Form2(Form1 form1) // here we receive the main form reference 
{ 
    InitializeComponent(); 
    mainForm = form1;  // here we store it in a class level variable 
    //.. 
} 

現在你可以設置其他表格大小:

mainForm.Size = new System.Drawing.Size(482, 370); 

當然,如果你需要它,你也應該在主窗體中保留對你打開的窗體的引用。爲此,請使用類似下面的代碼:

Form2 form2 = new Form2(this); 
.. 

AddChildForm(form2); 
+0

非常感謝你@TaW它的工作! –

相關問題