如何打开第二张表格?

时间:2011-04-19 14:40:20

标签: c# .net winforms forms

我的项目中有Form1和Form2。 Form2只是一个Form1设置的表单。从Form1打开Form2的命令是什么,请关闭它的命令是什么?

10 个答案:

答案 0 :(得分:49)

您需要处理因用户交互而引发的Form1上的事件。例如,如果您有一个“设置”按钮,用户单击该按钮以显示设置表单(Form2),您应该处理该按钮的Click事件:

private void settingsButton_Click(Object sender, EventArgs e)
{
    // Create a new instance of the Form2 class
    Form2 settingsForm = new Form2();

    // Show the settings form
    settingsForm.Show();
}

Show method外,您还可以选择使用ShowDialog method。不同之处在于后者将表单显示为模态对话框,这意味着用户在关闭模式表单之前无法与应用程序中的其他表单进行交互。这与消息框的工作方式相同。 ShowDialog方法还返回一个值,指示表单是如何关闭的。


当用户关闭设置表单时(例如,通过单击标题栏中的“X”),Windows将自动关闭它。

如果您想在用户要求关闭它之前自行关闭它,您可以调用表单Close method

this.Close();

答案 1 :(得分:8)

//To open the form

Form2 form2 = new Form2();

form2.Show();
// And to close
form2.Close();

希望这有帮助

答案 2 :(得分:6)

如果要以模态方式打开Form2(意味着在Form2打开时无法单击Form1),可以执行以下操作:

using (Form2 f2 = new Form2()) 
{
    f2.ShowDialog(this);
}

如果要以非模态方式打开Form2(意味着在Form2打开时仍然可以单击Form1),可以像这样创建Form2的表单级引用:

private Form2 _f2;

public void openForm2()
{
    _f2 = new Form2();
    _f2.Show(this); // the "this" is important, as this will keep Form2 open above 
                    // Form1.
}

public void closeForm2()
{
    _f2.Close();
    _f2.Dispose();
}

答案 3 :(得分:4)

我假设您在谈论Windows窗体:

要显示表单,请使用Show()方法:

Form form2 = new Form();
form2.Show();

关闭表单使用Close():

form2.Close();

答案 4 :(得分:3)

在一行中它将是:

(new Form2()).Show();

希望它有所帮助。

答案 5 :(得分:2)

在任何点击事件(或其他)上:

Form2 frm2 = new Form2();
frm2.Show();

答案 6 :(得分:2)

分别为Form.Show()(或Form.ShowDialog(),如果您希望第二种形式为模态),Form.Hide()(或Form.Close(),取决于您的意思{{1 }})。

答案 7 :(得分:1)

如果您需要将Form2显示为modal dialog,请在Form1内执行:

var form2 = new Form2();
if (form2.ShowDialog() == DialogResult.OK) 
{
    // process results here
}

模态对话框在打开时会保持焦点;它将在后台设置父窗口(Form1)“直到它关闭,这是设置窗口的常见做法。

答案 8 :(得分:0)

从这开始:

var dlg = new Form2();
dlg.ShowDialog();

答案 9 :(得分:0)

Form1 OpenNewForm = new Form1();
OpenNewForm.Show();

“ OpenNewForm”是表单的名称。 在第二个表单中打开。

如果要关闭上一个表单:

this.Close();