Laden...

Ein EventHandler für mehrere Buttons?

Erstellt von IchRoque81 vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.435 Views
IchRoque81 Themenstarter:in
36 Beiträge seit 2008
vor 15 Jahren
Ein EventHandler für mehrere Buttons?

Hallo zusammen 😃

Ich stehe hier vor einem "Schönheitsproblem". Folgende Situation:

In meiner GUI befinden sich meherer Textboxes mit jeweils einen Button daneben. Nun hat der Benutzer die Möglichkeit einen Ordner entweder direkt in die TextBox einzugeben (also den kompletten Pfad) oder auf den Button zu klicken, welches eine FolderDialog öffnet, in dem er auf diese Weiße einen Ordner auswählen kann.
Nun ist es leider so, dass ich in meiner Form ca. 10 solcher Kombinationen habe. Gibt es nicht die Möglichkeit ein Event für alle Buttons zu definieren, welches nach dem Beenden des FolderDialogs den gewählten Ordner auch in die dazugehörige TextBox schreibt?

Bin über jede Anregung und Tipp dankbar, der mich von der Leitung runter holt, auf der ich gerade sitze 😉

~ rock on ~

Q
214 Beiträge seit 2006
vor 15 Jahren

Hallo,
Möglichkeit gibt es diverse, zwei sind:

  1. Button und Textbox mit Nummern versehen, also Button1 zu Textbox1 usw.
    Dann zeigt jeder Button auf einen Event-Handler. Der öffnet dann den Dialog etc., schaut welcher Button gedrückt wurde, z.B. Button6, und schreibt es dann in Textbox6

Oder (würde ich eher bevorzugen):
2) Du erstellst ein Control, der eine Textbox und einen Button beinhaltet. Drückt man den Button => Dialog => Datei erscheint in Textbox.
Dann in deinem Form hast du einfach nur 10 dieser Controls.

IchRoque81 Themenstarter:in
36 Beiträge seit 2008
vor 15 Jahren

Danke für die Tipps 😃

Tipp Nummer 2 klingt super! Hab ich da dann auch nur ein Event in meiner Form, das für alle Buttons gültig ist?

~ rock on ~

365 Beiträge seit 2004
vor 15 Jahren

Ja, du nimmst einen EventHandler über den sender kriegst du dann raus von welchem Steuerelement das Event ausgelöst wurde.

691 Beiträge seit 2007
vor 15 Jahren

Du kannst alternativ in der Tag-Property deines Buttons eine Referenz auf die dazugehörige Textbox schreiben.

Oder du verwendest ein Dictionary, das einer eindeutigen Button-Property, wie z.B. der Name, eine Textbox zuweist.

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

Q
214 Beiträge seit 2006
vor 15 Jahren

Hallo,

Danke für die Tipps 😃
Tipp Nummer 2 klingt super! Hab ich da dann auch nur ein Event in meiner Form, das für alle Buttons gültig ist?

In deinen Form hast du dann überhaupt kein Event.
Das alles wird in dem Control realisiert, in deinem Form fügst du dann nur 10 mal dein Textbox-Button-Control hinzu.

Achja als Ergänzung zu:
Statt dies über Namen zu machen, könnte man auch in einem Array/Hashtable/Dictionaryetc. festhalten, welcher Button zu welcher Textbox gehört.

Also in der Form:
Dictionary<Button, Textbox> zuordnung = new Dictionary<Button, Textbox>();
//...

Dann bei der Methode für das Event:
zuordung[Button_der_gedrückt_wurde].Text = Text_aus_der_Datei;

IchRoque81 Themenstarter:in
36 Beiträge seit 2008
vor 15 Jahren

Besten Dank für die Tipps von euch!

Hab mich für die Variante mit dem eigenem User Control entschieden 😃

~ rock on ~