ContextMenuStrip项目引用问题

时间:2009-12-16 23:07:44

标签: c# checked contextmenustrip

我在这里搜索过,并没有找到我想要的东西。

我正在使用ContextMenuStrip,其中有一个菜单项是选中/未选中的项。结构如下:

顶级:设置 中级:处理 底层:手动处理

我无法找到访问底层项目的方法,将其设置为选中或取消选中。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

不确定我是否在关注这个问题。你知道“底层物品”的名字吗?如果是这样,只需按名称引用它:

bottomLevelMenuItem.Checked = true;

如果您不知道名称,可以遍历ItemsDropDownItems(取决于MenuItem类型)控件集合以找到您想要的名称。

foreach (ToolStripMenuItem stripItemCollection in MenuStrip.Items)
{
    ...
}

修改

正确,ToolStripItem没有已检查的属性。它是许多工具条对象的基类,其中一些不支持检查。在这种情况下,您可能正在处理具有已检查属性的ToolStripMenuItem

试试这个:

ToolStripMenuItem menuItem = this.cmuSystemTray.Items["TLSETTINGS"] as ToolStripMenuItem;
if (menuItem != null)
{
    menuItem.Checked = true;
}

尽管每个ControlToolStripMenuItem)都有一个与之关联的名称,因此使用原始变量更容易,而不是通过上下文菜单条的Items属性

TLSETTINGS.Checked = true; // Assuming TLSETTINGS is the name