0

我有两个表单(称为form1作为mdi容器和form2),在form1中有一个opentoolstripmenuitem,当opentoolstripmenuitem单击form2调用并且opentoolstripmenuitem变为禁用时,但是当我单击form2右上角的closebox时,opentoolstripmenu仍然禁用,我希望它单击关闭框时再次启用。

这是我在 form1 中的代码:

private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
    openToolStripMenuItem.Enabled = false;
    Form2 newMDIChild = new Form2();
    newMDIChild.MdiParent = this;
    newMDIChild.Show();            
}

有什么建议吗??

4

2 回答 2

1

在单击处理程序中,为 Form2 的 Closing 或 Closed 事件创建一个处理程序:

newMDIChild.FormClosed += new FormClosedEventHandler(newMDIChild_FormClosed);

void newMDIChild_FormClosed(object sender, FormClosedEventArgs e)
{
        openToolStripMenuItem.Enabled = true;
}
于 2014-03-13T04:33:02.533 回答
1

简单只需在表单上使用 ShowDialog() 并在 Showdialog 之后启用它

private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
openToolStripMenuItem.Enabled = false;
Form2 newMDIChild = new Form2();
newMDIChild.MdiParent = this;
newMDIChild.ShowDialog(); 
openToolStripMenuItem.Enabled = true;           
}

showdialog 之后的下一个代码在对话框关闭之前不会执行

希望它有效

谢谢

于 2014-03-13T04:33:20.253 回答