在窗体 1 中检测窗体 2 已关闭
本文关键字:窗体 检测 | 更新日期: 2023-09-27 18:36:27
我正在尝试检测form2在form1中是关闭的。 到目前为止我有这个
private void AddStageBtn_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.ShowDialog();
if (form2.IsDisposed)
{
MessageBox.Show("it was closed!");
}
}
有什么建议吗? 再次感谢!
遵守 form2 的FormClosed
事件。
无论您在哪里创建它,请执行以下操作:
form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
然后创建方法:
void form2_FormClosed(object sender, FormClosedEventArgs e)
{
// Do whatever you want here
}
如果您希望能够使用任一表单,您还需要使用 .Show()
而不是 .ShowDialog()
,否则form1
在关闭form2
之前将不可用(我假设这不是您正在寻找的行为)。
在这种特殊情况下
private void AddStageBtn_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.ShowDialog();
MessageBox.Show("it was closed!");
}
将正常工作。 如果您希望能够在 form2 打开时在 form1 中执行操作,则需要使用"显示"而不是"显示对话框"。 然后,您可以为 form1 中关闭的表单创建一个处理程序。
form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);