Rubrik: Controls · TextBox & RichTextBox | VB-Versionen: VB.NET | 15.11.04 |
Nur Dezimalzahlen in einer Textbox zulassen (VB.NET) Dieser Tipp zeigt, wie sich unter VB.NET die Eingabe in einer TextBox auf Dezimalzahlen begrenzen lässt. | ||
Autor: Wolfgang Müller-Fabini | Bewertung: | Views: 19.099 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
In Anlehnung an Dieter Otter´s Tipp "Nur Zahlen in einer TextBox zulassen" habe ich mir eine kleine Erweiterung ausgedacht.
Mit diesem Code werden nur reine Dezimalzahlen in der TextBox angenommen. Also nur maximal EIN Dezimalkomma. Ausserdem wird eine Eingabe, die mit einem Dezimalkomma beginn, gleich in "0, " umgewandelt. Es kann auch ein Dezimalpunkt eingegeben werden, der dann zum Dezimalkomma umgewandelt wird.
Private Sub TextBox1_KeyPress(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress With TextBox1 Select Case Asc(e.KeyChar) Case 44, 46 ' Komma, Punkt If InStr(.Text, ",") < 1 Then ' nur falls noch kein Dezimalzeichen vorhanden If .TextLength = 0 Or .SelectionLength = .TextLength Then If .SelectionLength > 0 Then .Text = "" .AppendText("0,") e.Handled = True End If Else e.Handled = True End If Case 48 To 57, 8 ' Zahlen, Backspace und zulassen Case Else ' alle anderen Eingaben unterdrücken e.Handled = True End Select End With End Sub