Deselect ToolStripItem on ContextMenuStrip
-
03-06-2021 - |
Frage
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?
Lösung
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.
Andere Tipps
You're looking for the Checked property?
public void mnuUncheck()
{
foreach (ToolStripMenuItem Item in mnuStripMain.Items)
{
Item.Checked = false;
}
}
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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow