Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击时启用/禁用ToolStripMenuItem_C#_Winforms_Toolstripmenu_Toolstripitem - Fatal编程技术网

C# 单击时启用/禁用ToolStripMenuItem

C# 单击时启用/禁用ToolStripMenuItem,c#,winforms,toolstripmenu,toolstripitem,C#,Winforms,Toolstripmenu,Toolstripitem,我有两个表单(称为form1为mdi容器,称为form2),在form1中有一个opentoolstripmenuitem,当opentoolstripmenuitem单击form2调用时,opentoolstripmenuitem变为禁用,但当我单击form2右上角的closebox时,opentoolstripmenuitem仍然禁用,我希望在单击closebox时再次启用它 这里是我的form1代码: private void openToolStripMenuItem_Click(obj

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

这里是我的form1代码:

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

任何建议???

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

newMDIChild.FormClosed += new FormClosedEventHandler(newMDIChild_FormClosed);

只需在表单上使用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之后的下一个代码在对话框关闭之前不会执行

希望它能起作用


谢谢

newMDIChild
上添加一个“关闭”事件处理程序,重新启用菜单项。您可以在
openToolStripMenuItem\u单击
中以编程方式执行此操作。为什么要禁用它呢?如果再次单击打开的实例,为什么不简单地激活它呢?你能给我具体的代码吗?
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
openToolStripMenuItem.Enabled = false;
Form2 newMDIChild = new Form2();
newMDIChild.MdiParent = this;
newMDIChild.ShowDialog(); 
openToolStripMenuItem.Enabled = true;           
}