C# 如何独立检查菜单项

C# 如何独立检查菜单项,c#,winforms,C#,Winforms,我有一个windows窗体应用程序,上面有一个菜单。在我的应用程序中,菜单中有一些菜单项,其中一个菜单项在默认菜单中 我的用户应该能够更改默认菜单。所以我对它使用checked属性。 每件事都是好的,但我想改变默认菜单,若只点击选中的区域,当点击选中的区域并没有火点击事件 我为一些东西创建了一个从MenuItem继承的类。我想,若我能捕捉点击事件并得到光标的位置,最后检查点击点是否在检查区域的范围内,我就能处理我的问题。但在菜单项中,我的访问权限有限 如有任何建议,将不胜感激 编辑:不幸的是,在

我有一个windows窗体应用程序,上面有一个菜单。在我的应用程序中,菜单中有一些菜单项,其中一个菜单项在默认菜单中

我的用户应该能够更改默认菜单。所以我对它使用checked属性。 每件事都是好的,但我想改变默认菜单,若只点击选中的区域,当点击选中的区域并没有火点击事件

我为一些东西创建了一个从MenuItem继承的类。我想,若我能捕捉点击事件并得到光标的位置,最后检查点击点是否在检查区域的范围内,我就能处理我的问题。但在菜单项中,我的访问权限有限

如有任何建议,将不胜感激

编辑:不幸的是,在OnClick方法中无法获得控件的位置、绘制文本的边界和选中的对象等。我使用Cursor.Position来确定点击点,并声明一个变量来填充OnDrawItem的MenuItem的孔边界。同样,通过blow代码,我知道选中标记的矩形范围:

 sidebarRect = new Rectangle(bounds.X + bounds.Width - SidebarSize, bounds.Y, SidebarSize, bounds.Height);

Edit2:让我再解释一下。我想在菜单项中有一个标签和复选框。如果发生这种情况,用户可以单独选中和选中复选框,而不必选择整个菜单项。但菜单项的检查属性会随着选择菜单项而更改。设想一个菜单有5个菜单项,带有一个收音机或复选框,您可以更改收音机/复选框以设置默认菜单项

我想你想要的是一个类似组合框的下拉项。单击一个项目,它会更改组合框中的文本。它有几个事件可以在项目更改时处理,您可以将这些事件传递给您需要的任何子例程或对象。

请显示代码,而不是描述它。实际上我没有代码要显示。我想找到解决问题的途径我不确定我是否理解你的问题,但看起来这是一种奇怪的行为,在选中的区域上悬停并单击应该会带来一些特殊效果来通知用户某些功能,你甚至不在乎?不,我想要一个上下文菜单,其中有一些项目,用户可以检查没有上下文菜单隐藏每个项目。当用户在文本或非复选标记的地方单击时,隐藏。