在我父窗體我有這樣的命令,我添加子窗體到我的主要形式有:如何更改Windows窗體中的父級大小?
AddChildForm(new Form2());
在我的Form2我有一個複選框,並在每次複選框被選中時我必須改變我的主要形式,尺寸,但我不能得到這個工作,只有創建一個新的形式,比如:
Form1 main = new Form1();
main.Size = new System.Drawing.Size(482, 370);
main.ShowDialog();
在我父窗體我有這樣的命令,我添加子窗體到我的主要形式有:如何更改Windows窗體中的父級大小?
AddChildForm(new Form2());
在我的Form2我有一個複選框,並在每次複選框被選中時我必須改變我的主要形式,尺寸,但我不能得到這個工作,只有創建一個新的形式,比如:
Form1 main = new Form1();
main.Size = new System.Drawing.Size(482, 370);
main.ShowDialog();
如果你不希望一個新的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);
非常感謝你@TaW它的工作! –
我建議您不希望Form2更改Form1,而是希望Form2通知Form1它需要更改。看看匿名事件處理程序。 https://msdn.microsoft.com/en-us/library/ms366768.aspx – Tebc