[C#] ToolStripMenuItem - Name beim Event anzeigen (Lösung vorhanden!)

x3008x

Mitglied
Hi Leute,
sitz hier grad und schreibe mir ein dynamisches Menü. Sprich das komplette Menü wird mit Code (durch Schleifen usw.) erzeugt.
Nun möchte ich natürlich auch mein Click-Event haben.
Das funktioniert auch problemlos. Das einzige Problem welches ich habe, ist wie ich statt den Text, den MenuStrip-Namen auslesen kann.
Folgende Lösung funktioniert:
Code:
...
ToolStripMenuItem NewItem = new ToolStripMenuItem();
NewItem.Click += new EventHandler(NewItemClick);
...

private void NewItemClick(object  sender, EventArgs e)
{
    string StripText = sender.ToString(); // <- Klar...
    string StripName = sender.GetType().InvokeMember("Name", 
    System.Reflection.BindingFlags.GetProperty, null, sender, null).ToString(); 
    // gehts nicht einfacher?
}
Mit vieeel Liebe formatiert den Code :)

Damit könnte man arbeiten...
Die Frage ist eigentlich nur ob man da nicht irgendwie einfacher dran kommt?! Ist ja oft so, dass man viel zu kompliziert denkt ;)

Danke schonmal - Ich freu mich auf Antworten
 
sender ist ja das ToolStripItem
Die hat eine Eigenschaft Tag dort könntest du dir benutzer definierte Daten halten die du für die Verarbeitung brauchst.

Also
1. sender casten nach ToolStripItem
2. Tag Eigenschaft auswerten

Ansonsten was genau hast du vor?
 
C#:
private void NewItemClick(object  sender, EventArgs e)
{
    ToolStripItem item = (ToolStripItem)sender;
    string StripName = item.Name;
}
Du brauchst Code übrigens nicht selber formatieren. Verwende einfach den tag "csharp" anstatt "code".
 
Zuletzt bearbeitet:
ach klar! ich doof ;)
sonst wär sender ja auch nicht vom Typ object...
Jetzt leuchtets mir ein :)

@ Spyke: Ich lese ein dynamisches Menü (mit Unterpunkten usw.) ein (durch XML) und möchte eben halt wenn ich das Click-Ereignis zuweise, dass ich auch die ID bzw. Name des Menüs bekomme. Man kann zwar auch mit dem Text arbeiten aber der darf durch aus mal gleich sein, deswegen doch lieber IDs.

@ Shakie: Ich dachte mir schon, dass tutorials einen Tag dafür hat, aber hab ihn oben halt nicht gefunden - beim nächsten mal weiß ich bescheid und spar mir die Arbeit ;)

Vielen Dank euch beiden!
 
Zurück