禁用Windows窗体应用程序中的MenuStrip下拉菜单

禁用Windows窗体应用程序中的MenuStrip下拉菜单

问题描述:

我正在禁用Windows窗体菜单栏中的父菜单选项。当您将鼠标悬停在其上时,子菜单仍会打开。有没有办法禁用子菜单打开或我必须禁用所有子菜单项?禁用Windows窗体应用程序中的MenuStrip下拉菜单

我最终通过DropDownItems循环并在禁用主项目后禁用它们。

for (int i = 0; i < this._menuOpen.DropDownItems.Count; i++) 
{ 
    this.menuOpen.DropDownItems[i].Enabled = false; 
} 

只需将父菜单上的Enable属性设置为False即可。在.net 2.0和3.5中,子菜单不会显示。

也请尽量做一个更具体一点。

+0

这是不正确的。它确实显示。第一次点击它时,它不会,但是如果你第二次点击它,它会。 – SchwartzE 2010-11-01 13:35:17

+0

我刚刚在第二台计算机上再次检查,结果是有效的。也许你应该尝试发布更多细节,也许会有截图。 – 2010-11-01 13:43:14

鼠标悬停下的菜单下拉显示似乎不是ToolStripMenuItem的默认行为,我无法找到属性来启用此功能。

我发现有人谁曾想这一行为this post,你应该检查是否存在对ToolStripMenuItem一个MouseHover事件处理程序,并检查Enabled属性有:

private void toolStripMenuItem1_MouseHover(object sender, EventArgs e) 
{ 
    if (toolStripMenuItem1.Enabled) 
     toolStripMenuItem1.DropDown.Show(menuStrip1, new Point(0, 0)); 
} 

HTH