如何打开第二张表格?

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

您需要处理由于用户交互而引发的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方法 ,您还可以选择使用ShowDialog方法 。 不同之处在于后者将表单显示为模式对话框 ,这意味着用户在关闭模式表单之前无法与应用程序中的其他表单进行交互。 这与消息框的工作方式相同。 ShowDialog方法还返回一个值,指示窗体是如何关闭的。


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

如果要在用户要求关闭它之前自己关闭它,可以调用表单的Close方法 :

 this.Close(); 
 //To open the form Form2 form2 = new Form2(); form2.Show(); // And to close form2.Close(); 

希望这可以帮助

如果要以模态方式打开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(); } 

我假设您在谈论Windows窗体:

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

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

关闭表单使用Close():

 form2.Close(); 

在一行中它将是:

 (new Form2()).Show(); 

希望能帮助到你。

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

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

分别是Form.Show() (或Form.ShowDialog(),如果你想要第二个forms是模态的), Form.Hide() (或Form.Close() ,取决于你的意思, close it )。

如果您需要将Form2显示为模式对话框 ,请从Form1执行:

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

modal dialog在打开时会保持焦点; 它将在后台设置父窗口( Form1 ),直到它关闭,这是设置窗口的一种常见做法。

从这开始:

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