繁体   English   中英

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

[英]ToolStripMenuItem not closing when a child ToolStripMenuItem is Clicked in a C# WinForm

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

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

那可能吗?

   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();
                } 
            }

仅供参考:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM