日期:2014-05-18  浏览次数:20739 次

为什么这么写找不到控件啊
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);
一级菜单的时候可以找到父控件,二级菜单这么写前面的都找得到,就是找不到最后的父控件,不知道什么原因

------解决方案--------------------
我试了试是可以访问到owner的,你调试看看二级菜单的Owner是神马
------解决方案--------------------
select 能找到不?
------解决方案--------------------
你指定ContextMenuStrip 的SourceControl了么
------解决方案--------------------
debug的时候跟一下 可能是父亲的父亲 这种情况最好用递归 或者直接FindControl