在我父窗体我有这样的命令,我添加子窗体到我的主要形式有:如何更改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