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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 如何获取contextMenuStrip弹出菜单中所单击子菜单中的所有父文本。相关的知识,希望对你有一定的参考价值。

还有,如何判断所单击菜单是否为顶级父菜单或如何获取所单击菜单所在的级数(属第几级菜单)

参考技术A parent不就可以了。追问

treeview有parent,但是contextMenuStrip是怎么实现的?比如我单击了一个菜单Item,如何实现?有parent属性吗,我看了好像只有OwnerItem与此类似功能。。

追答

ToolStripItemA.OwnerItem
通过这个获取父级

追问

是的,这个我已明白。我要获取所有父级,怎么实现?多多请教!!或怎么判断它现所处于第几级菜单,如果已是第一级菜单,再用ToolStripItemA.OwnerItem就会出错的了。

追答

获取所有父级
ToolStripItemA.OwnerItem.OwnerItem.OwnerItem.OwnerItem.OwnerItem.OwnerItem.OwnerItem
直到没有父级了,那就是顶级了。
ToolStripItemA.OwnerItem==null判断一下啊。

C#界面里的winform ContextMenuStrip属性

C#界面里的winform ContextMenuStrip属性

ContextMenuStrip属性是获取或设置与此控件关联的 ContextMenuStrip对象。

 

由于面向图形操作界面的流行,在界面上看到什么就想操作什么,这样是最佳的用户体验。
所以很多应用程序,都会界面上显示相应的内容,但是屏幕的界面总会是有限的面积,
并不能把所有需要的功能全部并排地放到界面显示。
还有另外一个原因,比如用户只想关心他们相关的功能,这样只有相关的功能放到这个菜单里,
与此处不相关的功能就可以隐藏起来,变成动态的菜单。
这时就需要使用右键菜单来显示了。

先要来创建一个ContextMenuStrip对象:
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);

接着创建几个菜单项对象:
            this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
            this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
            this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();

再把上面创建的菜单项添加到右键菜单里:

以上是关于C# 如何获取contextMenuStrip弹出菜单中所单击子菜单中的所有父文本。的主要内容,如果未能解决你的问题,请参考以下文章

C#Winform中如何获取contextMenuStrip弹出的父控件的相关信息

C#界面里的winform ContextMenuStrip属性

C#界面里的winform ContextMenuStrip属性

如何获取 ContextMenuStrip 的位置?

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

C# 窗体控件ContextMenuStrip下拉项之间的分割线