Validierung, um nur numerische Daten in einem Textfeld in einem Fenster form
Ich möchte, dass ein Benutzer tritt nur numerische Daten in die textbox in einer windows-form. Wie kann ich das erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie wollen passieren, wenn der Benutzer versucht, in einen nicht-numerischen Wert? Diese Frage, bevor Sie eine Einreichung von Daten versuchen? Ohne Eingabe Ihrer code-block jedes mal, wenn eine Taste gedrückt wird, denke ich, dass es sauberer sein zu lassen, die der Benutzer eingeben, die nicht-Numerik und überprüfen Sie entweder, wenn das Formular übermittelt wird, und/oder, wenn das Textfeld den Fokus verliert. Dann, wenn die Validierung fehlschlägt, Benachrichtigen Sie die Benutzer, die von der strengen numerischen format. Dies wäre weniger invasiv, um einen Benutzer, anstatt Sie zu unterbrechen.
Als für die Validierung sein, verwenden Sie einfach entweder mit regulären Ausdrücken oder versuchen zu analysieren, das Textfeld text als integer.
Regulären Ausdruck
Integer Parsen
Der einfachste Weg wäre, um eine MaskedTextBox (verwenden Sie die
Maske
Eigenschaft) oder eine NumericUpDown Kontrolle. Wenn Sie wirklich brauchen, eine fein abgestimmte Kontrolle, dass diese Kontrollen nicht geben, Griff derKeyPress
sowie andere geeignete Veranstaltungen desTextBox
Kontrolle als erforderlich.EDIT: Geklärt, dass
KeyPress
ist nicht der einzige relevante Ereignis, wie erwähnt, durch ho1.MaskedTextBox
oderNumericUpDown
da, wenn Sie gehen würde, für dieKeyPress
handling etc, Sie vielleicht zu tun haben mitTextChanged
oder etwas ähnliches, wenn text eingegeben wird in die textbox ohne die Verwendung der Tastatur (kopieren und einfügen mit der Maus oder einem anderen app-Versand von SMS in es, etc). Und Sie haben zu daran erinnern, all die Tasten, die Sie behandeln müssen, nicht nur Ziffern (backspace?, Komma?, dot?).Zuerst es hängt davon ab, welche Art von numerischen Daten, die Sie zulassen möchten. (Integer, Double, ... oder etwas app-spezifisches? Wie eine ISBN oder so?)
Kurz:
Die einfachste Möglichkeit wäre, wie Ani sagte, aber wenn Sie brauchen eine bestimmte Art und Weise, sollten Sie abonnieren eine passende Veranstaltung. Zum Beispiel TextBox.Validierung TextBox.OnLeave, TextBox.OnTextChange... das hängt davon ab wenn Sie testen möchten, die passenden.
Als test können Sie in der Event-Handler, was Sie wollen, auch RegEx möglich wäre, für komplexe alphanumerische Daten.
PS: sollten Sie wirklich einen Blick auf http://msdn.microsoft.com/en-us/library/system.windows.forms.control.validating.aspx