从第一个窗体调用第三个窗体

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 变量