none
c# eine Eventhandler für alle TextBoxen RRS feed

  • Frage

  • Hallo zusammen,
    ist es möglich in C# einen EventHandler mit dem Element TextBox zu verknüpfen, anstatt jede erstellte TextBox einzeln zu verknüpfen?

    zurzeit mach ich das so:

    http://pastebin.com/VG347jxJ

    Bei dem verlinkten Code ist es halt nur so, dass jedesmal wenn eine TextBox erstellt wird, ich im Konstruktor das Click-Event der jeweiligen Instanz von TextBox erst mit der Methode "TXTClick" verknüpfen muss.

    Ich möchte also das jede TextBox bei generierung automatisch ein Click-Event besitzt das mit der Methode "TXTClick" verknüpft ist.

    Viele Grüße

    Friendly
    Samstag, 1. Dezember 2012 12:14

Antworten

  • Hallo zusammen,

    Ich möchte also das jede TextBox bei Generierung automatisch ein Click-Event besitzt das mit der Methode "TXTClick" verknüpft ist.

    Dann muss man eben eine eigene Klasse von TextBox ableiten, OnClick überschreiben und dort die gewünschte Logik ausführen. Alle MyTextBox-Instanzen werden dieses Verhalten automatisch aufweisen, egal ob man sie über die Toolbox (nach erfolgreicher Kompilierung erscheint ja in der Toolbox auch ein Symbol für das neue MyTextBox-Control) oder über den Editor erstellt.

    class MyTextBox : TextBox {
       protected override void OnClick(EventArgs e) {
          base.OnClick(e);
          double i;
          if (!Double.TryParse(Text, out i))
             Text = "";
       }
    }

    Über aspektorientierte Entwicklung ließe sich das Ganze ebenfalls realisieren (z.B. mit PostSharp), ob man ein solches Vorgehen aber begrüßt bleibt nicht zuletzt Geschmackssache.

    Gruß
    Marcel

    Montag, 3. Dezember 2012 14:39
    Moderator

Alle Antworten