我正在尝试检测form2在form1中是否已关闭。到目前为止我有这个
private void AddStageBtn_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.ShowDialog();
if (form2.IsDisposed)
{
MessageBox.Show("it was closed!");
}
}
有什么建议吗?再次感谢!
答案 0 :(得分:2)
在这种特殊情况下
private void AddStageBtn_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.ShowDialog();
MessageBox.Show("it was closed!");
}
会正常工作。如果您希望能够在form2打开时在form1中执行操作,则需要使用Show而不是ShowDialog。然后,您可以在form1中为表单创建一个处理程序。
form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
答案 1 :(得分:2)
坚持form2的FormClosed
事件。
无论您在何处创建,都可以:
form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
然后创建方法:
void form2_FormClosed(object sender, FormClosedEventArgs e)
{
// Do whatever you want here
}
如果您希望能够使用任何一种表单,也可以使用.Show()
代替.ShowDialog()
,否则在form1
关闭之前form2
将无法使用(我假设的不是您正在寻找的行为)。