Tastatureinagbe zur Laufzeit abfragen und bestimmte Zeichen austauschen



  • Hallo, ich habe eine Oberfläche mit vielen Textboxen für Dateneingaben. Gibt es eine Funktion, mit der ich die Eingabe sofort auf bestimmte Zeichen überprüfen und ersetzen kann? Wenn eine Dezimalzahl eingegeben wird, soll der '.' automatisch in ein ',' umgewandelt werden.
    Was ist die pragmatischste Lösung? AUf dem Board habe ich dazu nichts passendes gefunden.



  • Gibt da mehrere Möglichkeiten.
    1. Du nutzt das Validation-Event der Textbox
    2. Du benutzt Regex auf die Textbox, nachdem man das Textfeld verlassen hat(LostFocus)
    3. Du benutzt eine Maskedtextbox, die man mit einer vorgesehenen Eingabe maske ausstatten kann.
    4. Du benutzt das KeyUp-Event der Textbox und wendest 2. darauf an.

    Eventuell fallen ja anderen noch mehr ein.



  • private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
    if(e.KeyChar == '.')
    {
    // e.Handled = true;
    SendKeys.Send(",");
    e.Handled = true;
    }
    }



  • Und gibt es eine Frage?
    Wobei ich die Lösung nicht wirklich praktikabel finde.
    Es bietet sich wirklich an das LostFocus Event zu nutzen und dann mit Regex einmal über den String drüber zu laufen der eingegeben wurde.


Anmelden zum Antworten