3

我设计了两种形式:Form1Form2. Form1是主要形式。中有一个按钮Form1,如果我单击该按钮,Form2则会弹出。我想做点什么Form2

// click button in Form1.
private void button1_Click(object sender, EventArgs e)
    {
        Form form2= new Form();
        form2.ShowDialog();
    }

但是Form2是一种新形式而不是现有形式。

这是错误的。

如何?谢谢。

4

5 回答 5

6

您正在创建 Form 类的实例,而不是您在项目中拥有的 Form2。创建您之前创建的 Form2 实例,然后在其中调用 ShowDialog。

您可能已经注意到 program.cs 中的 Application.Run(new Form1()); 这里我们创建 Form1 的实例并传递给 Run 方法。

通过创建 Form2 的实例并调用 ShowDialog() 方法来显示它

Form2 form2= new Form2();
form2.ShowDialog();
于 2012-05-04T12:41:18.647 回答
0

宣布

Form2 form2= new Form2();

喜欢你的班级成员并像这样使用它:

private void button1_Click(object sender, EventArgs e)
{

        form2.ShowDialog(); //blocking call 

       //or form2.Show() //non blocking call
}

编辑

根据正确的评论,使这项工作而不是执行Close()将导致Dispose()您需要使用的功能form2.Hide()使 make 根本不可见

于 2012-05-04T12:40:23.540 回答
0

您创建空白表格

Form Form2= new Form();

你应该使用

Form2 form2= new Form2();

完整代码:

private void button1_Click(object sender, EventArgs e)
    {
        Form2 form2= new Form2();
        form2.ShowDialog();
    }
于 2012-05-04T12:43:16.037 回答
0
 private void button1_Click(object sender, EventArgs e)
        {
            InputForm form1 = new InputForm();
            form1.Show();
        }

这里 InputForm 表示您要打开哪个表单。

于 2013-05-09T15:15:35.727 回答
0

问题是“从主表单打开现有表单”

好的,让我们稍微改变一下,从主窗体打开一个现有的窗体实例。

当您显示表格时

new Form2().Show();

假设您使用隐藏

Form2.Hide();

你们可以用这个

var Form2_instance = Application.OpenForms.OfType<Form2>().Single();
Form2_instance.Show();
于 2018-10-29T02:27:11.053 回答