禁用Windows窗体应用程序中的MenuStrip下拉列表

时间:2010-10-29 20:41:45

标签: winforms menustrip

我在Windows窗体menustrip中禁用父菜单选项。将鼠标悬停在其上时,子菜单仍会打开。有没有办法禁用子菜单打开或我是否必须禁用所有子菜单项?

3 个答案:

答案 0 :(得分:1)

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

我确实想找到此行为的人找到this post,您应该检查MouseHover是否有ToolStripMenuItem事件处理程序并检查Enabled那里的财产:

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

HTH

答案 1 :(得分:0)

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

另外请尝试更具体一点。

答案 2 :(得分:0)

我最终循环遍历DropDownItems并在禁用主项后禁用它们。

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