问题
Simple question:
I can .Select
a ToolStripItem
(like, if i want a preselected option when opening a context menu strip) but i cannot seem to find a way to set .Selected
to false or somehow deselect it!
Is it possible?
回答1:
There is private method ClearAllSelections in ToolStrip class, which removes selections from items. You can invoke it via reflection:
MethodInfo method = typeof(ToolStrip).GetMethod("ClearAllSelections", BindingFlags.NonPublic | BindingFlags.Instance);
method.Invoke(yourContextMenuStrip, null);
All selections will be removed.
回答2:
You're looking for the Checked property?
public void mnuUncheck()
{
foreach (ToolStripMenuItem Item in mnuStripMain.Items)
{
Item.Checked = false;
}
}
回答3:
Taking the approach of Sergey, there is also an internal method on the ToolStripItem which you could call:
MethodInfo methodInfo = typeof(ToolStripItem).GetMethod("Unselect", BindingFlags.NonPublic | BindingFlags.Instance);
methodInfo.Invoke(yourToolStripItem, null);
来源:https://stackoverflow.com/questions/10323224/deselect-toolstripitem-on-contextmenustrip