如何从另一个WinForm的代码中关闭不同的WinForm?

soo*_*ise 4 c# winforms

如何从不同的WinForm(A)代码中关闭不同的WinForm(B)?

我已经设置好WinForm(B)在WinForm(A)的代码中打开:

Form2 form2 = new Form2();
form2.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

您需要对代码进行两处更改:

  • 使用Show而不是ShowDialog使第一个窗口仍然可以处理事件.
  • 保留对您打开的表单的引用.

这是一些示例代码:

Form2 form2;

private void button1_Click(object sender, EventArgs e)
{
    form2 = new Form2();
    form2.Show();
}

private void button2_Click(object sender, EventArgs e)
{
    form2.Close();
}
Run Code Online (Sandbox Code Playgroud)

您需要添加一些逻辑,以确保在打开表单之前无法关闭表单,并且不要尝试关闭已关闭的表单.