从第一个窗体调用第三个窗体
Call a third Form from the first Form
我这里有一个"beginner"简单的情况:
我的主窗体带有一个调用第二个窗体 (form2) 的按钮,主窗体参数为:
在表格 1 中:
button_click
Form2 F2 = new Form2(this);
F2.Show();
在 Form2 中:
public class Form2(Form1 form1)
InitializeComponent(); mainForm = form1;
好的,现在我有一个 Form3(Form1 form1),我想从 Form2 调用它(显示)但是当我将代码放入第二种形式(Form2)时:
button_click
Form3 F3 = new Form3(this);
F3.Show();
给我一个错误。我尝试用 (Form1 form1) 代替 (this) 但它不起作用。
如何从Form2中调用Form3?
Form3 F3 = new Form3(mainForm);
F3.Show();
你的尝试表明你对如何将参数传递给方法缺乏理解,它与 winforms 没有严格的关系。
无论如何,您已经声明了一个 Form3
,它将 Form1
的一个实例作为参数。如果在您的 Form2
代码中执行 new Form3(this)
,则 this
将引用您当前所在对象的实例,它是 Form2
的实例,但它不会匹配表单签名。
此外,您不能像您那样将参数传递给声明其类型的方法 - new Form3(Form1 form1)
- 因为它没有任何意义,而且它不是有效语法。
由于您已将 Form1
实例引用存储在局部变量 mainForm
中,并且您的 Form3
需要 Form1
的实例,因此您应该像这样实例化它:new Form3(mainForm)
。确保可以从实例化 Form3
.
的位置访问 mainForm
变量
我这里有一个"beginner"简单的情况:
我的主窗体带有一个调用第二个窗体 (form2) 的按钮,主窗体参数为:
在表格 1 中:
button_click
Form2 F2 = new Form2(this);
F2.Show();
在 Form2 中:
public class Form2(Form1 form1)
InitializeComponent(); mainForm = form1;
好的,现在我有一个 Form3(Form1 form1),我想从 Form2 调用它(显示)但是当我将代码放入第二种形式(Form2)时:
button_click
Form3 F3 = new Form3(this);
F3.Show();
给我一个错误。我尝试用 (Form1 form1) 代替 (this) 但它不起作用。
如何从Form2中调用Form3?
Form3 F3 = new Form3(mainForm);
F3.Show();
你的尝试表明你对如何将参数传递给方法缺乏理解,它与 winforms 没有严格的关系。
无论如何,您已经声明了一个 Form3
,它将 Form1
的一个实例作为参数。如果在您的 Form2
代码中执行 new Form3(this)
,则 this
将引用您当前所在对象的实例,它是 Form2
的实例,但它不会匹配表单签名。
此外,您不能像您那样将参数传递给声明其类型的方法 - new Form3(Form1 form1)
- 因为它没有任何意义,而且它不是有效语法。
由于您已将 Form1
实例引用存储在局部变量 mainForm
中,并且您的 Form3
需要 Form1
的实例,因此您应该像这样实例化它:new Form3(mainForm)
。确保可以从实例化 Form3
.
mainForm
变量