tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Spyke
  • 1 Beitrag von Shakie
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
1006
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    x3008x x3008x ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    59
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    ...
    [COLOR="MediumTurquoise"]ToolStripMenuItem[/COLOR] NewItem = [COLOR="Blue"]new[/COLOR] [COLOR="MediumTurquoise"]ToolStripMenuItem[/COLOR]();
    NewItem.Click += [COLOR="Blue"]new[/COLOR] [COLOR="MediumTurquoise"]EventHandler[/COLOR](NewItemClick);
    ...
     
    private void NewItemClick([COLOR="Blue"]object [/COLOR] sender, [COLOR="MediumTurquoise"]EventArgs[/COLOR] e)
    {
        [COLOR="Blue"]string[/COLOR] StripText = sender.ToString(); [COLOR="Green"]// <- Klar...[/COLOR]
        [COLOR="Blue"]string[/COLOR] StripName = sender.GetType().InvokeMember([COLOR="DarkRed"]"Name"[/COLOR], 
        System.Reflection.[COLOR="MediumTurquoise"]BindingFlags[/COLOR].GetProperty, [COLOR="Blue"]null[/COLOR], sender, [COLOR="Blue"]null[/COLOR]).ToString(); 
        [COLOR="Green"]// gehts nicht einfacher?[/COLOR]
    }
    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
     

  2. #2
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    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?
    x3008x bedankt sich. 
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  3. #3
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Code csharp:
    1
    2
    3
    4
    5
    
    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".
    Geändert von Shakie (28.04.10 um 19:38 Uhr)
    x3008x bedankt sich. 

  4. #4
    x3008x x3008x ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    59
    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!
     

Ähnliche Themen

  1. Tage vergleichen und Event anzeigen
    Von ciberjoerg im Forum PHP
    Antworten: 14
    Letzter Beitrag: 02.11.09, 13:23
  2. Suche Lösung für Probleme beim Aufstehen...
    Von Hawkster im Forum Smalltalk
    Antworten: 30
    Letzter Beitrag: 28.10.09, 08:23
  3. Antworten: 3
    Letzter Beitrag: 09.01.09, 18:48
  4. wenn bild nicht vorhanden, anderes anzeigen.
    Von ciberjoerg im Forum PHP
    Antworten: 3
    Letzter Beitrag: 11.12.08, 16:17
  5. Antworten: 1
    Letzter Beitrag: 13.07.05, 00:02

Stichworte