我这里有一个“初学者”的简单情况:
我的主窗体有一个按钮,调用第二种形式(form2)whit mainform参数:
在Form1中:
button_click
Form2 F2 = new Form2(this);
F2.Show();
在Form2中:
public class Form2(Form1 form1)
InitializeComponent(); mainForm = form1;
好了,我现在有一个Form3(Form1 form1),我想从Form2调用它(show)但是当我把代码放在第二种形式(Form2)时:
button_click
Form3 F3 = new Form3(this);
F3.Show();
给了我一个错误。我尝试使用(Form1 form1)而不是(this),但它不起作用。
如何调用Form3 Form3?
答案 0 :(得分:1)
Form3 F3 = new Form3(mainForm);
F3.Show();
答案 1 :(得分:1)
你的尝试表明缺乏理解参数如何传递给方法,它与winforms没有严格的关系。
无论如何,您已声明Form3
将Form1
的实例作为参数。如果您在Form2
代码中new Form3(this)
,this
将引用您当前所在对象的实例,即Form2
的实例,并且与表格签名不符。
此外,您无法将参数传递给声明其类型的方法 - new Form3(Form1 form1)
- 因为它没有任何意义且它不是有效的语法。
由于您已将Form1
实例引用存储在本地变量mainForm
中,并且Form3
需要Form1
的实例,因此您应该将其实例化为:{{1 }}。确保可以从实例化new Form3(mainForm)
。
mainForm
变量