Rubrik: Controls · TextBox & RichTextBox | VB-Versionen: VB.NET | 26.02.07 |
Nur Dezimalzahlen in einer Textbox zulassen (VB.NET) II 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: 12.303 |
ohne Homepage | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Ich habe meinen Tipp Nur Dezimalzahlen in einer Textbox zulassen (.NET) einer kleinen Revision unterzogen. Man kann jetzt nur eine führende 0 eingeben. Bisher war es möglich Dezimalzahlen wie 00.3 einzugeben. Wenn jetzt versucht wird eine zweite Null einzugeben, wird die TextBox zu "0.".
Wie tauschen wir die alte gegen die neue Version aus?
Hier der aktualisierte Code:
Private Sub TextBox1_KeyPress(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Dim sTemp As String With TextBox1 Select Case Asc(e.KeyChar) Case 44, 46 ' Komma, Punkt sTemp = .Text If sTemp.IndexOf(".") > -1 Then e.Handled = True Exit Sub End If If sTemp.Length = 0 Then .AppendText("0.") e.Handled = True Else .AppendText(".") e.Handled = True End If Case 48 ' Die Ziffer 0 sTemp = .Text If sTemp.IndexOf("0") = 0 And sTemp.Length = 1 Then .AppendText(".") e.Handled = True Exit Sub End If Case 49 To 57, 8 ' Zahlen, Backspace und zulassen Case Else ' alle anderen Eingaben unterdrücken e.Handled = True End Select End With End Sub