2015-07-21 27 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它的工作! –

相关问题