首页 新闻 会员 周边

menuStrip控件子项到底是什么类型

0
悬赏园豆:20 [已解决问题] 解决于 2013-08-30 09:55

第一种不对((ToolStripDropDownMenu)this.Controls.Find("菜单次三ToolStripMenuItem", false)[0]).Enabled = false;

第二种也不对((ToolStripMenuItem)this.Controls.Find("菜单次三ToolStripMenuItem", false)[0]).Enabled = false;

控件子项到底是什么类型,从哪里找?

班哥静听的主页 班哥静听 | 初学一级 | 园豆:158
提问于:2011-03-14 11:55
< >
分享
最佳答案
0

ToolStripMenuItem类型不属于当前Form的控件集合的,只有它所属于的MenuStrip才会被添加到当前窗体的控件集合

ToolStripMenuItem对象只属于MenuStrip其中的一个子级项目

楼主如果需要查找ToolStripMenuItem类型对象,需要编写特定的查找逻辑

如下:


private object FindControl(Control control, string findControlName)
{
object ret = null;
foreach (Control c in control.Controls)
{
if (c.Name == findControlName)
{
return c;
}
else if (c is MenuStrip)
{
ret = FindToolStripMenuItem(c as MenuStrip, findControlName);

if (ret != null)
{
return ret;
}
}
else
{
ret = FindControl(c, findControlName);

if (ret != null)
{
return ret;
}
}
}

return ret;
}

然后在方法FindToolStripMenuItem中查找传入参数c的Items,最后使用递归查询.

收获园豆:10
dlianghui | 菜鸟二级 |园豆:214 | 2013-08-02 18:35
其他回答(1)
0

不知道啊!

收获园豆:10
无纺布袋购物袋 | 园豆:215 (菜鸟二级) | 2011-03-14 13:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册