contextmenustrip 通过二级菜单的点击 怎么获取当前关联控件,是二级菜单,不是一级菜单。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了contextmenustrip 通过二级菜单的点击 怎么获取当前关联控件,是二级菜单,不是一级菜单。相关的知识,希望对你有一定的参考价值。

一级菜单获取代码如下:
private void ToolStripMenuItem1_Click(object sender, EventArgs e)

ToolStripMenuItem t = (ToolStripMenuItem)sender;
ContextMenuStrip c = (ContextMenuStrip)t.GetCurrentParent();
关联控件 r = (关联控件)c.SourceControl;


那如果 ToolStripMenuItem1 还有下一级菜单,怎么才能最终获取到关联控件,我的思路是通过下一级菜单先获取 ToolStripMenuItem1,然后通过上面方法就可以了,但是没有实现,求高手解答

第一次使用Dex控件开发Winfrom程序,现在遇到RibbonMain主窗体的顶部菜单默认隐藏,点击ribbon才显示。这样可以节约界面空间。但是找不到设置地方。而且是在其他人坐的winform程序上有这种效果的。 参考技术A 用OwnerItem获取父级的菜单项

希望回答对你有帮助追问

OwnerItem 貌似可以获取到父级的菜单项,但仍有错误
private void 小菜单_ToolStripMenuItem_Click(object sender, EventArgs e)//这是ToolStripMenuItem的子菜单的点击事件
ToolStripMenuItem s = (ToolStripMenuItem)sender.OwnerItem;
ContextMenuStrip c = (ContextMenuStrip)s.GetCurrentParent();
(关联控件)r = (关联控件)c.SourceControl;//错误就在这里,r根本没有被实例化

ContextMenuStrip 类

表示快捷菜单

 

命名空间:   System.Windows.Forms
程序集:  System.Windows.Forms(位于 System.Windows.Forms.dll)

System.Object
??System.MarshalByRefObject
????System.ComponentModel.Component
??????System.Windows.Forms.Control
????????System.Windows.Forms.ScrollableControl
??????????System.Windows.Forms.ToolStrip
????????????System.Windows.Forms.ToolStripDropDown
??????????????System.Windows.Forms.ToolStripDropDownMenu
????????????????System.Windows.Forms.ContextMenuStrip

 

ContextMenuStrip replaces ContextMenu.ContextMenuStrip 是用于取代ContextMenu。

 

以上是关于contextmenustrip 通过二级菜单的点击 怎么获取当前关联控件,是二级菜单,不是一级菜单。的主要内容,如果未能解决你的问题,请参考以下文章

DataGridView使用技巧九:DataGridView的右键菜单(ContextMenuStrip)

C# 如何获取contextMenuStrip弹出菜单中所单击子菜单中的所有父文本。

ContextMenuStrip 动态添加多级子菜单

C#文本选中及ContextMenuStrip菜单使用

动态添加CONTEXTMENUstrip的子菜单后,无法响应CLICK

右键单击列表视图以显示 contextmenustrip,但弹出菜单出现在屏幕的不相关点