Custom Textbox erstellen



  • Hallo,

    ich möchte eine TextBox erstellen, in die man nur IP Adressen eintragen kann. Jede ungültige Eingabe wird also gefiltert und gar nicht erst angezeigt. Außerdem werden sollen immer drei Punkte angezeigt werden, die der Nutzer nicht löschen kann.

    Durch das Überschreiben der OnKeyDown() Methode kann ich herausfinden, ob eine Zahl eingegeben wurde:

    protected override void OnKeyDown(KeyEventArgs kpe)
    		{
    			bool isLetterOrDigit = char.IsNumber((char)kpe.KeyCode);
    
    			if (isLetterOrDigit) 
    				Text += (char)kpe.KeyCode;
    			else
    				Console.WriteLine("something else");
    		}
    

    Doch die Textbox wird auch im "else" Zweig aktualisiert. Wie kann ich das verhindern?

    Die Eigenschaft "Text" soll also nur verändert werden, wenn die zuvor stattgefundene Prüfung erfolgreich ist.

    Vielen Dank



  • Hallo,

    setze

    e.Handled = true;
    

    Wäre ein MaskedTextBox nicht besser?

    PS: Kannst dir auch mal A C# IP Address Control anschauen.


Anmelden zum Antworten