Entwickler-Ecke
WinForms - Ein Eventhandler für mehrere Textboxen
squee1337 - Fr 30.07.10 12:03
Titel: Ein Eventhandler für mehrere Textboxen
Hallo zusammen,
Ich habe eine WinForm mit mehreren Textboxen die Daten aufnehmen.
Jetzt will ich für diese Textboxen ein Highlighting implementieren. Das ganze soll on_text_changed passieren.
Ich weiss, wie ich das für jede Textbox einzeln mache, aber bei 25 Textboxen ist das ne menge redundanter Code.
Gibts da ne Möglichkeit das ganze auf einen Eventhandler für alle textboxen zu beschränken?
Trashkid2000 - Fr 30.07.10 12:19
Hi,
ja, gibt es. Du hast einen Eventhandler, nennen wir ihn mal
C#-Quelltext
1: 2: 3: 4:
| textBoxes_TextChanged(object sender, EventArgs e) {
} |
So, nun kannst Du einfach im Designer für jede Textbox unter den Eigenschaften und bei den Ereignissen bei TextChanged diesen EventHandler zuweisen.
Oder die Zuweisungen im generierten Code des Designers vornehmen. Aber da sollte man eigentlich (und grade als Anfänger) nicht drin rumfummeln.
Gruss, Marko
JüTho - Fr 30.07.10 12:22
Hallo,
schau einmal in die Form.Designer.cs, wie der Designer es macht. Daran kannst du dich orientieren.
1. Baue den einheitlichen EventHandler:
C#-Quelltext
1:
| private void AllMyTextBoxesTextChanged(object sender, EventArgs e) { ... } |
2. Weise diesen EventHandler allen TextBoxen zu. Dies geschieht meistens im Konstruktor nach InitializeComponents, aber es kann später geschehen (nur früher kann und darf es nicht sein):
C#-Quelltext
1: 2:
| NameInput.TextChanged += AllMyTextBoxesTextChanged; BirthPlaceInput.TextChanged += AllMyTextBoxesTextChanged; |
3. Welche TextBox gerade bearbeitet wird, steht im Argument sender.
C#-Quelltext
1: 2: 3: 4:
| TextBox box = sender as TextBox; if (box != null) { } |
Gruß Jürgen
PS. Marko war schneller, dafür bin ich etwas ausführlicher. :D
squee1337 - Fr 30.07.10 12:32
Genau das hat mir zum Verständnis gefehlt! DANKE
Zitat: |
3. Welche TextBox gerade bearbeitet wird, steht im Argument sender.
C#-Quelltext 1: 2: 3: 4: 5:
| TextBox box = sender as TextBox; if (box != null) { } |
|
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!