从第一张表格中拨打第三张表格

时间:2015-01-14 08:42:54

标签: c# forms

我这里有一个“初学者”的简单情况:

我的主窗体有一个按钮,调用第二种形式(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?

2 个答案:

答案 0 :(得分:1)

Form3 F3 = new Form3(mainForm);    
F3.Show();

答案 1 :(得分:1)

你的尝试表明缺乏理解参数如何传递给方法,它与winforms没有严格的关系。

无论如何,您已声明Form3Form1的实例作为参数。如果您在Form2代码中new Form3(this)this将引用您当前所在对象的实例,即Form2的实例,并且与表格签名不符。

此外,您无法将参数传递给声明其类型的方法 - new Form3(Form1 form1) - 因为它没有任何意义且它不是有效的语法。

由于您已将Form1实例引用存储在本地变量mainForm中,并且Form3需要Form1的实例,因此您应该将其实例化为:{{1 }}。确保可以从实例化new Form3(mainForm)

的位置访问mainForm变量