如何通过其子项更改 Windows 表单中的父项大小?

How to change parent size in Windows forms by its child?

在我的父表单中,我有这个命令,我将子表单添加到我的主表单中:

 AddChildForm(new Form2());

在我的 Form2 中有一个复选框,每次选中该复选框时,我都必须更改我的主窗体大小,但我无法完成这项工作,只能创建一个新窗体,就像这样:

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

如果您不想要新的 Form1,请不要创建它。

您可能需要 参考 真正的主窗体。这应该在打开它期间或之后的某个时间设置,但由于您向我们展示的只是 4 条上下文之外的行,我们无法确定。.

而且由于我们没有看到 AddChildForm 代码,因此更难猜测。

但是,您应该将引用从 opening 表单传递到 opened 表单,如下所示:

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);