Feedback

C# - NumTextBox (Kurzversion)

Veröffentlicht von am 03.09.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.
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

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 09.07.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 09.07.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!