vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: TextBox, ListBox & ComboBox07.01.09
Nur bestimmte Zeichen in Textbox zulassen (VB 2005, VB 2008)

VB-Version:  VB2005, VB2008
 Views:  46.591 

Textboxen werden oft verwendet um bestimmte Daten vom Benutzer zu bekommen. Hier ist es manchmal nützlich, nur bestimmte Eingaben zuzulassen.

Um nur die Eingabe von Zahlen zuzulassen, können Sie die IsNumeric-Funktion verwenden:

Private Sub TextBox1_TextChanged(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles TextBox1.TextChanged
 
  If Not IsNumeric(TextBox1.Text) Then
    MessageBox.Show("Bitte nur Zahlen eingeben.")
  End If
End Sub

Die IsNumeric-Funktion lässt auch die Dezimaltrennzeichen Punkt und Komma zu und ist für Berechnungen geeignet.

Sollen lediglich Buchstaben eingegeben werden, dann hilft diese Funktion weiter:

Public Function IsLetter(ByVal Text As String) As Boolean
  For Each ch As Char In Text
    If Not Char.IsLetter(ch) Then Return False
  Next
  Return True
End Function

Der Aufruf könnte dann so erfolgen:

Private Sub TextBox1_TextChanged(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles TextBox1.TextChanged
 
  If Not IsLetter(TextBox1.Text) Then
    MessageBox.Show("Bitte nur Buchstaben eingeben.")
  End If
End Sub

Sehr flexibel ist die Abfrage der Eingabe über die Ascii-Codes. Da jedes Zeichen einen ganz bestimmten Ascii-Code hat, kann hier genau vorgegeben werden, welche Zeichen verwendet werden dürfen. Hier ein Beispiel:

Private Sub TextBox1_KeyPress(ByVal sender As Object, _
  ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
 
  Select Case Asc(e.KeyChar)
    Case 48 To 57, 8, 32         ' Zahlen, Backspace und Space zulassen
  Case Else
    ' alle anderen Eingaben unterdrücken
    e.Handled = True
  End Select
End Sub

Eine Tabelle der Ascii-Codes finden Sie in unserer Rubrik Befehlsreferenz oder in der MSDN unter dem Stichwort "ASCII-Zeichensatz".

Dann gibt es natürlich auch noch die Möglichkeit, alles in Groß- oder Kleinbuchstaben zu verwandeln. Hierzu im TextChanged-Ereignis einfach eine dieser Codezeilen einfügen:

TextBox1.CharacterCasing = CharacterCasing.Upper ' nur Großbuchstaben
TextBox1.CharacterCasing = CharacterCasing.Lower ' nur Kleinbuchstaben

 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.