Feedback

C# - NumTextBox (Kurzversion)

Veröffentlicht von am 9/3/2010
(0 Bewertungen)
Da ich hier nur eine komplexere Variante gefunden habe, reiche ich noch eine Kurzversion nach:
Eine Textbox, welche nur die Eingabe von numerischen Zeichen und BackSpace erlaubt.
class NumTextBox:System.Windows.Forms.TextBox
    {
        //Constructor
        public NumTextBox()
        {
            //Aufruf von Context Menü unterbinden.
            this.ShortcutsEnabled = false;

            //KeyPress Ereignis anmelden
            this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(NumTextBox_KeyPress);
        }

        void NumTextBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
        {
            //Prüfung, ob eine Zahl oder BackSpace ausgelöst wurde
            if ("1234567890\b".IndexOf(e.KeyChar.ToString()) < 0)
            {
                //Bei Abweichung Ereignis verwerfen
                e.Handled = true;
            }
        }
    }
Abgelegt unter c#, Contols, TextBox, numerisch.

2 Kommentare zum Snippet

Flobias schrieb am 7/9/2018:
Hallo Zusammen,
kann mir jemand erklären, warum ich den Ereignishändler "KeyPress" nicht finde?
(Die Ereignishändler "KeyUp" und "KeyDown" sind zum Beispiel verfügbar)
Danke schön :)
Martin Dauskardt schrieb am 7/9/2018:
Es handelt sich noch um ein Windows Forms-Snippet.

Unter WPF kannst du folgendes verwenden:

private void NumericTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (!Char.IsDigit((char)KeyInterop.VirtualKeyFromKey(e.Key)) & e.Key != Key.Back | e.Key == Key.Space)
{
e.Handled = true;
MessageBox.Show("I only accept numbers, sorry. :(", "This textbox says...");
}
}


Grüße
Martin
 

Logge dich ein, um hier zu kommentieren!