Cod*_*ray 52
您需要处理由于用户交互而引发的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();
}
Run Code Online (Sandbox Code Playgroud)
除了该Show方法,您还可以选择使用该ShowDialog方法.不同之处在于后者将表单显示为模式对话框,这意味着用户在关闭模式表单之前无法与应用程序中的其他表单进行交互.这与消息框的工作方式相同.该ShowDialog方法还返回一个值,指示窗体是如何关闭的.
当用户关闭设置表单时(例如,通过单击标题栏中的"X"),Windows将自动关闭它.
如果要在用户要求关闭它之前自己关闭它,可以调用表单的Close方法:
this.Close();
Run Code Online (Sandbox Code Playgroud)
//To open the form
Form2 form2 = new Form2();
form2.Show();
// And to close
form2.Close();
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
如果要以Form2模态方式打开(意味着在Form2打开时无法单击Form1),则可以执行以下操作:
using (Form2 f2 = new Form2())
{
f2.ShowDialog(this);
}
Run Code Online (Sandbox Code Playgroud)
如果要以非模态方式打开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();
}
Run Code Online (Sandbox Code Playgroud)
我假设你谈论的是 Windows 窗体:
要显示表单,请使用 Show() 方法:
Form form2 = new Form();
form2.Show();
Run Code Online (Sandbox Code Playgroud)
要关闭表单,请使用 Close():
form2.Close();
Run Code Online (Sandbox Code Playgroud)