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