在ContextMenuStrip上取消选择ToolStripItem

时间:2012-04-25 20:27:31

标签: c# winforms contextmenustrip toolstripitem

简单问题:

我可以.Select一个ToolStripItem(如果我想在打开上下文菜单条时想要一个预先选择的选项),但我似乎无法找到将.Selected设置为false或不知怎的,取消选择它!

有可能吗?

3 个答案:

答案 0 :(得分:3)

ToolStrip类中有私有方法ClearAllSelections,用于删除项目中的选择。您可以通过反射来调用它:

MethodInfo method = typeof(ToolStrip).GetMethod("ClearAllSelections", BindingFlags.NonPublic | BindingFlags.Instance);
method.Invoke(yourContextMenuStrip, null);

所有选择都将被删除。

答案 1 :(得分:0)

您正在寻找Checked属性吗?

public void mnuUncheck()
{
    foreach (ToolStripMenuItem Item in mnuStripMain.Items)
    {
       Item.Checked = false;
    }
}

答案 2 :(得分:0)

采用Sergey的方法,ToolStripItem上还有一个内部方法,您可以调用它:

MethodInfo methodInfo = typeof(ToolStripItem).GetMethod("Unselect", BindingFlags.NonPublic | BindingFlags.Instance);
methodInfo.Invoke(yourToolStripItem, null);