Hallo Leute,
folgendes:
Ich habe ein ContextMenu, auf dem sich ein ToolStripMenuItem befindet (beides habe ich mit dem Designer erstellt).
Dass ContextMenu rufe ich über
.Show() in einer Event-Methode eines anderen Objekts auf.
Über ein ItemClicked-Event des ContextMenus werden im Code die
Checked-Eigenschaften verschiedener ToolStripMenuItems verändert.
Nach Ablauf dieses Events werden aber alle Änderungen verworfen und kein Item auf dem ContextMenu ist ausgewählt.
Frage: Muss ich beim Event oder beim ContextMenu noch irgendeinen Wert setzen, der das Standard-Verhalten abbricht (vgl.
e.Cancel von anderen Events)
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| private void contextMenuStripBsp_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { UncheckAllContextMenuItems(); this.toolStripMenuItemBsp.Checked = true; } |
Gruß Julian
PS: Dasselbe Prinzip funktioniert mit ToolStripMenuItems, die sich in einem MenuStrip befinden.
EDIT: Ich konnte die gewünschte Funktionalität erreichen, indem ich die
Checked-bool-Werte der einzelnen Items im
ItemClicked-Event in einem Array speichere und diese Werte dann in einem
Opening-Event des ContextMenus wieder den einzelnen ToolStripMenuItems (nicht
ContextMenu.Items!) zuweise.