1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
407
407
EMPFEHLEN
-
Hallo zusammen.
Ich habe mal kurz eine Frage.
Kann man mit einem codeerzeugten clickevent eine variable mit übergeben ?! also:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
while ((line1 = sr1.ReadLine()) != null) { // string tmp_zeile = line; // string[] tmp_zeile2 = tmp_zeile.Split(new Char[] { '|' }); mnu.DropDownItems.Add(line1, null); string tutorials = line1; mnu.DropDownItemClicked += test(line1);//bzw new clickevent // += (Click, args) => //{ // MessageBox.Show(line1); //}; } public void clickevent(object sender, ToolStripItemClickedEventArgs e) { hier soll die variable tutorials erreichbar sein. }
danke für eure Hilfe..
gruß
-
Du kannst einem Event keine Variablen übergeben.
Es gibt ein paar Möglichkeiten wie du das Problem lösen kannst.
- Mit delegates arbeiten
- Die Variable global definieren
- Die Variable im sender "verstauen" (Der Tag member ist dafür ganz gut geeignet)In order to understand recursion, one must first understand recursion.
-
-
So zum Beispiel:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
private void Form1_Load(object sender, System.EventArgs e) { string itemName = "Menuitem "; for (int i = 1; i < 4; i++) { ToolStripMenuItem tsItem = new ToolStripMenuItem(); tsItem.Text = itemName + i; tsItem.Tag = tsItem.Text; this.toolStripDropDownButton1.DropDownItems.Add(tsItem); } this.toolStripDropDownButton1.DropDownItemClicked += new ToolStripItemClickedEventHandler(toolStripDropDownButton1_DropDownItemClicked); } void toolStripDropDownButton1_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) { MessageBox.Show(e.ClickedItem.Tag.ToString()); }
Ein Beispiel für die globale Variable ( Das ist in diesem Fall wirklich eine sehr unschöne Variante ):
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
private List<string> tsItems; private void Form1_Load(object sender, System.EventArgs e) { this.tsItems = new List<string>(); string itemName = "Menuitem "; for (int i = 1; i < 4; i++) { ToolStripMenuItem tsItem = new ToolStripMenuItem(); tsItem.Text = itemName + i; this.toolStripDropDownButton1.DropDownItems.Add(tsItem); tsItems.Add(tsItem.Text); } this.toolStripDropDownButton1.DropDownItemClicked += new ToolStripItemClickedEventHandler(toolStripDropDownButton1_DropDownItemClicked); } void toolStripDropDownButton1_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) { for (int i = 0; i < this.toolStripDropDownButton1.DropDownItems.Count; i++) { if (this.toolStripDropDownButton1.DropDownItems[i].Selected) MessageBox.Show(this.tsItems[i]); } }
Hier noch ein Beispiel mit delegates ( auch ziemlich unschön in diesem Fall )
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
private void Form1_Load(object sender, System.EventArgs e) { string itemName = "Menuitem "; for (int i = 1; i < 4; i++) { ToolStripMenuItem tsItem = new ToolStripMenuItem(); tsItem.Text = itemName + i; this.toolStripDropDownButton1.DropDownItems.Add(tsItem); tsItem.Click += delegate { this.tsItemClicked(tsItem, tsItem.Text); }; } } private void tsItemClicked(ToolStripMenuItem item, string tutorials) { MessageBox.Show(tutorials); }
Wie gesagt die letzten beiden Beispiel würde ich so auch nicht verwenden weil sie in diesem Fall einfach unpraktikabel sind. Aber es reicht hoffentlichum das Prinzip zu verstehen.In order to understand recursion, one must first understand recursion.
-
Ähnliche Themen
-
Übergabe einer Variable und Variable=global?
Von Master Flexi im Forum PHPAntworten: 16Letzter Beitrag: 11.04.07, 13:19 -
Übergabe Variable mit Session... Kl. Probl.!
Von markberg im Forum PHPAntworten: 2Letzter Beitrag: 11.09.05, 13:30 -
Problem mit Übergabe einer Variable
Von Starfighter1 im Forum PHPAntworten: 0Letzter Beitrag: 22.07.05, 22:27 -
Problem mit Ausgabe bei übergabe einer Variable
Von Lukasz im Forum PHPAntworten: 3Letzter Beitrag: 05.02.04, 23:00 -
Variable Übergabe per Post
Von mageDSA im Forum HTML & XHTMLAntworten: 3Letzter Beitrag: 24.07.02, 11:27





Zitieren

Vielen Dank hast mir bei meinem Programm weiter geholfen.. hoffe nur nicht, das der clicked event 2 x aufgerufen wird ?! bei mir macht ers aus irgendeinem grund -.-
Login





