C# 从另一个窗体调整窗体大小

C# 从另一个窗体调整窗体大小,c#,winforms,C#,Winforms,我同时运行两个表单,并试图通过调用Form1方法来调整Form1的大小,方法中包含Form2中的事件。使用以下代码,控制台中会显示正确的大小值,但Form1的大小不会改变。我尝试了很多方法,但我不明白为什么这不起作用 在表格1中: public void ResizeForm() { Console.WriteLine(this.Size.ToString()); this.Size = new System.Drawing.Size(600, 300); } 表格2: pri

我同时运行两个表单,并试图通过调用
Form1
方法来调整
Form1
的大小,方法中包含
Form2
中的事件。使用以下代码,控制台中会显示正确的大小值,但
Form1
的大小不会改变。我尝试了很多方法,但我不明白为什么这不起作用

在表格1中:

public void ResizeForm()
{
    Console.WriteLine(this.Size.ToString());
    this.Size = new System.Drawing.Size(600, 300);
}
表格2:

private void ResizeCheckbox_CheckedChanged(object sender, EventArgs e)
{
    Form1 form = new Form1();
    form.ResizeForm();
}

Form1 form=new Form1()创建新表单,调整其大小,然后将其忘记。所以,这是完全没有意义的。
ResizeForm()
方法确实会被调用,但是在
Form1
的错误实例上。根据您的描述,您应该在某个地方有另一个
Form1
实例,即您实际向用户显示的实例。您需要从
Form2
中访问该实例。如果您无法从
Form2
中访问
Form1
的正确实例,则必须以某种方式传递它,以便
Form2
拥有它。创建
Form1
的新实例不会调整
Form1
的原始实例的大小。您应该将当前
Form1
的实例传递给第二个表单。在
Form2
中添加一个实例,然后从
Form1

表格2

然后像这样在主窗体中打开
Form2

Form2 form2 = new Form2();
form2.Show((Form1)this); //I'm not sure if you need to cast "this" to From1

你在哪里准确地显示了
表单
同样通过代码的外观,你如何知道哪个表单实际上正在调整大小,因为你正在调用
Form1 form=new form(1)
查看代码如果你要发布代码,你无法分辨哪个先出现了
鸡还是蛋。。请展示所有相关的物品,为什么你不能只做这个
this.Size=新尺寸(600300)this.Size=新尺寸(600300);给我错误“Size”是“System.Drawing.Size”和“System.Window.Size”之间的不明确引用。我理解在这种情况下“这”可能是有问题的,这就是为什么我要求另一种方法。但是,控制台输出表明我正在引用Form1。这并不是那么困难。我的基本意思是,您应该对当前尝试执行的操作采取不同的方法。
System.Drawing.Size
用于GDI+,而
System.Window.Size
用于WPF<代码>控制台
是另一个独立的API,它在与WinForm不同的进程中运行。在同一个项目中使用三个不同的图形子系统是非常困难的,您可能犯了严重错误。您需要发布代码,向我们显示问题。请咨询。
Form2 form2 = new Form2();
form2.Show((Form1)this); //I'm not sure if you need to cast "this" to From1