不要在winforms中单击时关闭ToolStripMenu

4

我正在处理一个C# WinForm项目,其中主要的工具栏菜单在用户单击其项后不能隐藏,该如何解决?

enter image description here


2
你能画个图之类的吗?因为据我理解,如果一个ToolStripMenu没有被“打开”,你是无法点击其中的项目的。所以基本上我不太明白。 - Kilazur
@Kilazur,我打开了工具栏菜单并点击了其中的项目,但当我点击一个项目时,工具栏菜单会自动关闭。我不希望它在点击后隐藏。 - ArMaN
@SriramSakthivel 当我点击退出按钮时,它会关闭。 - ArMaN
好的,请发布您所拥有的代码。因为没有叫做Toolstripmenu的东西。您指的是哪个类? - Sriram Sakthivel
1
这个 ToolStripMenuItem 是添加到 ToolStrip 还是 ContextMenuStrip 中?如果是后者,那么你要求的很容易实现。 - Sriram Sakthivel
显示剩余3条评论
2个回答

9

我在MSDN论坛 上找到了更好的答案。下拉菜单在点击时不会关闭,但在其他情况下会关闭:

DropDown.Closing += new ToolStripDropDownClosingEventHandler(DropDown_Closing);
...
private void DropDown_Closing(object sender,  ToolStripDropDownClosingEventArgs e)
{
    if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
    {
        e.Cancel = true;
    }
}

8

将父菜单项的AutoClose属性设置为false,以防止菜单条关闭。

示例:

ToolStripMenuItem file = new ToolStripMenuItem("File");
file.DropDown.AutoClose = false;
file.DropDownItems.Add("New");
file.DropDownItems.Add("Open");
file.DropDownItems.Add("Exit");

MenuStrip ms = new MenuStrip();
ms.Items.Add(file);

this.Controls.Add(ms);

现在你需要自己关闭菜单:
file.DropDown.Close();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接