在C#WinForm中单击子ToolStripMenuItem时,ToolStripMenuItem未关闭

时间:2010-02-19 13:40:35

标签: c# winforms

当我点击子控件(在其DropDrowItems集合中)时,有没有办法让ToolStripMenuItem不关闭?

在我的情况下,我有一些ToolStripMenuItems作为复选框。实际上,我使用Check属性在一些ToolStripMenuItems中实现了一个无线电行为。但是当我点击其中任何一个菜单时,我不希望菜单关闭,因为它们不是动作,它们只代表菜单项中的选项。

这可能吗?

3 个答案:

答案 0 :(得分:4)

   this.menuItem.DropDown.Closing += new ToolStripDropDownClosingEventHandler(DropDown_Closing); 

void DropDown_Closing(object sender, ToolStripDropDownClosingEventArgs e)
            {
                if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
                {
                    e.Cancel = true;
                    ((ToolStripDropDownMenu) sender).Invalidate();
                } 
            }

答案 1 :(得分:1)

答案 2 :(得分:0)

仅供参考:

  • Closing事件存在于 ContextMenuStrip ToolStripDropDown
  • 在使用设计器进行设计时,您可以访问 ContextMenuStrip (弹出菜单)和ToolStripMenuItem(子菜单)对象,但不能访问 ToolStripDropDown 对象。 ToolStripMenuItem!
  • 这就是为什么你必须通过代码自己设置 ToolStripDropDown 对象的Closing事件(参见Zabulus答案)。