为什么这么写找不到控件啊

wxxsnowman 2012-03-31 03:18:58
ToolStripMenuItem temperature = (ToolStripMenuItem)sender;//获取"温度"菜单项
ToolStripMenuItem temperatureParent = (ToolStripMenuItem)temperature.OwnerItem;
ContextMenuStrip selete = (ContextMenuStrip)temperatureParent.Owner;//获取它所在的菜单.
Console.WriteLine(selete);
Control bind = (Control)selete.SourceControl;//获取菜单被显示的控件
this.Controls.Remove(bind);
Console.WriteLine(bind);
一级菜单的时候可以找到父控件,二级菜单这么写前面的都找得到,就是找不到最后的父控件,不知道什么原因
...全文
123 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxxsnowman 2012-04-01
  • 打赏
  • 举报
回复
Select可以查找到,ContextMenuStrip的SourceControl也指定了,如果只有一级菜单,可以找到父控件,两级菜单的话就找不到,不知道为什么。。。
烟波钓 2012-04-01
  • 打赏
  • 举报
回复
两级菜单的话就找不到
就像我说的 两级菜单的时候 不是简简单单父菜单的菜单的问题 debug 自己眼见为实
烟波钓 2012-03-31
  • 打赏
  • 举报
回复
debug的时候跟一下 可能是父亲的父亲 这种情况最好用递归 或者直接FindControl
阿非 2012-03-31
  • 打赏
  • 举报
回复
你指定ContextMenuStrip 的SourceControl了么
水猿兵团五哥 2012-03-31
  • 打赏
  • 举报
回复
select 能找到不?
tiangong789 2012-03-31
  • 打赏
  • 举报
回复
初步看来没什么问题。。是不是用其他方法访问owner
wxxsnowman 2012-03-31
  • 打赏
  • 举报
回复
二级菜单:温度(temperature)
一级菜单:选择绑定数据(temperatureParent)
控件名称:[System.Windows.Forms.ContextMenuStrip], Name: teeChartRightClickMenu, Items: 2(select)
但是bind找不到啊
bdmh 2012-03-31
  • 打赏
  • 举报
回复
我试了试是可以访问到owner的,你调试看看二级菜单的Owner是神马

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧