社区
C#
帖子详情
contextmenustrip 怎么获取子菜单,怎么返回上一层
lzj047111
2012-09-28 10:57:41
contextmenustrip 怎么获取子菜单,怎么返回上一层
...全文
360
28
打赏
收藏
contextmenustrip 怎么获取子菜单,怎么返回上一层
contextmenustrip 怎么获取子菜单,怎么返回上一层
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lzj047111
2012-09-29
打赏
举报
回复
[Quote=引用 25 楼 的回复:]
ToolStripItem oItem = childItem.OwnerItem.OwnerItem;
if (oItem != null){
((ToolStripMenuItem)oItem).DropDownItems //得到父级同级的集合
}
else{
}
知道么,null是不能转化为任何类型的
[/Quote]
我在加到三层,然后根据你的代码调试一下吧
lzj047111
2012-09-29
打赏
举报
回复
[Quote=引用 25 楼 的回复:]
ToolStripItem oItem = childItem.OwnerItem.OwnerItem;
if (oItem != null){
((ToolStripMenuItem)oItem).DropDownItems //得到父级同级的集合
}
else{
}
知道么,null是不能转化为任何类型的
[/Quote]
childItem.OwnerItem -- 这个已经获取到第一层菜单了吧。没错吧。
childItem.OwnerItem.OwnerItem -- 在加一个OwnerItem,那么是不是应该为NULL。
而childItem.OwnerItem,已经获取到第一层,为什么还需要加OwnerItem呢?
ggewt2td
2012-09-29
打赏
举报
回复
ToolStripItem oItem = childItem.OwnerItem.OwnerItem;
if (oItem != null){
((ToolStripMenuItem)oItem).DropDownItems //得到父级同级的集合
}
else{
}
知道么,null是不能转化为任何类型的
ggewt2td
2012-09-29
打赏
举报
回复
真是服了你了,是Null是因为是最顶层,你先要判断是不是null,
不是null才强制转化啊,
大哥。
lzj047111
2012-09-29
打赏
举报
回复
[Quote=引用 22 楼 的回复:]
强制转化一下不就行了,
[/Quote]
强制转化成ToolStripMenuItem过。提示Null
ggewt2td
2012-09-29
打赏
举报
回复
强制转化一下不就行了,
lzj047111
2012-09-29
打赏
举报
回复
[Quote=引用 20 楼 的回复:]
ToolStripMenuItem oItem = childItem.OwnerItem.OwnerItem;
if (oItem != null){
oItem.DropDownItems //得到父级同级的集合
}
else{
[菜单容器].Items //得到最顶层集合
[/Quote]
ToolStripMenuItem oItem = childItem.OwnerItem.OwnerItem; // 这里返回的对象是ToolStripItem,而不是
ToolStripMenuItem哦。
ggewt2td
2012-09-29
打赏
举报
回复
ToolStripMenuItem oItem = childItem.OwnerItem.OwnerItem;
if (oItem != null){
oItem.DropDownItems //得到父级同级的集合
}
else{
[菜单容器].Items //得到最顶层集合
ggewt2td
2012-09-29
打赏
举报
回复
错了,应该是
childItem.OwnerItem.OwnerItem.DropDownItems
ggewt2td
2012-09-29
打赏
举报
回复
childItem.OwnerItem.DropDownItems 这个就可以得到 A_1/A_2/A_3 集合啊
按索引遍历
ggewt2td
2012-09-29
打赏
举报
回复
ToolStripItem oItem = childItem.OwnerItem;
if (oItem != null){
((ToolStripMenuItem)oItem).DropDownItems //得到父级同级的集合
}
else{
}
知道那个意思就行了,你自己去弄吧,
不要照抄我的代码,我的代码随手写的,
lzj047111
2012-09-28
打赏
举报
回复
[Quote=引用 16 楼 的回复:]
childItem.OwnerItem.OwnerItem
再继续套啊,
如果父级为空,那就直接用菜单容器来套
[/Quote]
是这样的。
假如:
我的菜单是这样
第一层菜单有如下项:
A_1\A_2\A_3(共有三个项)
当我点击A_1时。
进入到A_1的子菜单。
A_1_1\A_1_2\A_1_3(共有三个项)
现在,我是处于A_1的子菜单,我通过一个按钮,点击一下,就可以返回到第一层菜单。
我通过你的childItem.OwnerItem。的确是返回A_1.但是,我还想要拿到A_2\A_3?
ggewt2td
2012-09-28
打赏
举报
回复
childItem.OwnerItem.OwnerItem
再继续套啊,
如果父级为空,那就直接用菜单容器来套
lzj047111
2012-09-28
打赏
举报
回复
[Quote=引用 13 楼 的回复:]
childItem.OwerItem.DropDownItems
[/Quote]
这个是获取childItem.OwerItem下面的子菜单啊。
我的意思是说,已经获取到父级childItem.OwnerItem;
但是,与父级同级的项怎么获取??
ggewt2td
2012-09-28
打赏
举报
回复
晕,你稍微动下脑筋就明白了,
ggewt2td
2012-09-28
打赏
举报
回复
childItem.OwerItem.DropDownItems
lzj047111
2012-09-28
打赏
举报
回复
[Quote=引用 10 楼 的回复:]
ToolStripMenuItem TMenuItem = this.contextmenustrip1.Items[0] as ToolStripMenuItem;
ToolStripMenuItem childItem = TMenuItem.DropDownItems[0]; //得到第二层菜单
childItem.OwerItem; //得到第二层菜单的父菜单(第一层的)
[/Quote]
childItem.OwnerItem; 这个获取到它的父级了。
怎么获取同级的所有项呢???
lzj047111
2012-09-28
打赏
举报
回复
[Quote=引用 10 楼 的回复:]
ToolStripMenuItem TMenuItem = this.contextmenustrip1.Items[0] as ToolStripMenuItem;
ToolStripMenuItem childItem = TMenuItem.DropDownItems[0]; //得到第二层菜单
childItem.OwerItem; //得到第二层菜单的父菜单(第一层的)
[/Quote]
ToolStripMenuItem childItem = TMenuItem.DropDownItems[0]; //得到第二层菜单
这样写,有错误。
foreach (ToolStripMenuItem item in childItem.DropDownItems)
{
}
// 这样就没问题
ggewt2td
2012-09-28
打赏
举报
回复
ToolStripMenuItem TMenuItem = this.contextmenustrip1.Items[0] as ToolStripMenuItem;
ToolStripMenuItem childItem = TMenuItem.DropDownItems[0]; //得到第二层菜单
childItem.OwerItem; //得到第二层菜单的父菜单(第一层的)
ggewt2td
2012-09-28
打赏
举报
回复
TMenuItem.OwnerItem 就可以得到第二层的第一层菜单啊
加载更多回复(8)
C#简单的折叠
菜单
折叠
菜单
的概念主要通过
菜单
项的
子
菜单
来实现,每个Tool
Strip
MenuItem可以有自己的
子
菜单
,形成层级结构。 步骤一:在Visual Studio中创建一个新的Windows Forms应用程序项目。在工具箱中找到Menu
Strip
控件并将其拖...
WinForm折叠
菜单
实现
使用Menu
Strip
控件在设计时创建
菜单
项,每个
菜单
项可以代表一个折叠组,
子
菜单
项则表示具体的
菜单
选项。例如,可以创建一个"功能"
菜单
,下级
菜单
为"功能1"、"功能2"等。 2. **状态管理**: 为了实现折叠效果,...
vb快捷
菜单
1. 在设计视图中,右键单击
ContextMenu
Strip
,选择“添加
菜单
项”来创建
子
菜单
项。可以为每个
菜单
项设置文本、图标、快捷键等属性。 2. 为每个
菜单
项设置事件处理程序。双击
菜单
项,在代码编辑器中自动生成事件处理...
MenuControl.rar_
菜单
_
菜单
visual basic_
菜单
控件
2. **分组和层次**:
菜单
项可以有
子
菜单
,形成层次结构,通过Indent属性设置
子
菜单
的缩进,以显示层次关系。 3. **图标和快捷键**:
菜单
项可以附加图标以提高可识别性,使用ShortcutKeys属性可以为
菜单
项添加快捷键...
VB打造超酷个性化
菜单
4. **
菜单
分组和
子
菜单
**:通过使用MenuItem控件的Items集合,可以创建分层次的
菜单
结构,创建
子
菜单
,使功能分类更加清晰。 5. **图标支持**:VB支持为
菜单
项添加图标,通过设置Image和ImageIndex属性,可以使
菜单
...
C#
111,092
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章