Heute stellen wir Ihnen eine Klasse vor, die von der Standard TextBox erbt und diese um eine neue Eigenschaft InputFormat erweitert. Über diese Eigenschaft lässt sich festlegen, welche Eingaben zulässig sind:
Weiterhin implementieren wir ein Ereignis, das immer dann ausgelöst werden soll, wenn der Anwender ein ungültiges Zeichen in die TextBox eingeben will. Über diese Ereignis könnte man bspw. den Anwender darüber informieren, welche Zeichen zulässig sind. Fügen Sie Ihrem Projekt ein neues Klassenmodul mit nachfolgendem Code hinzu: Public Class TextBoxEx Inherits TextBox Private m_Format As txtFormat = txtFormat.AllText ' Definiert die erlaubten Zeichen Private Const charsNumeric As String = "0123456789" Private Const charsAlpha As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß " Private Const charsSpecial As String = ":.;,!&%/()=*+-_<>" ' Auflistungskonstanten für die Eingabebeschränkungen Public Enum txtFormat AllText = 0 Numeric = 1 OnlyText = 2 NumericAndText = 3 NumerTextSpecialChars = 4 End Enum ''' <summary> ''' Wird beim Drücken eines ungültigen Zeichens ausgelöst. ''' </summary> Public Event InvalidChar(ByVal sender As Object, ByVal KeyChar As Char) ''' <summary> ''' Legt das Format der zulässigen Eingaben fest oder gibt dieses zurück. ''' </summary> Public Property InputFormat() As txtFormat Get Return m_Format End Get Set(ByVal value As txtFormat) m_Format = value End Set End Property ''' <summary> ''' Gibt die erlaubten Zeichen als Gesamtstring zurück. ''' </summary> Public ReadOnly Property AllowedChars() As String Get Select Case m_Format Case txtFormat.Numeric Return charsNumeric Case txtFormat.OnlyText Return charsAlpha Case txtFormat.NumericAndText Return charsNumeric & charsAlpha Case txtFormat.NumerTextSpecialChars Return charsNumeric & charsAlpha & charsSpecial Case Else Return "" End Select End Get End Property Private Sub TextBoxEx_KeyPress(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress ' Tastatur-Eingabe prüfen Select Case Asc(e.KeyChar) Case 8, 13 ' Backspace und Return immer zulassen Case Else ' je nach InpitFormat-Eigenschaft prüfen, ' ob die gedrückte Taste zulässig ist Select Case m_Format Case txtFormat.Numeric ' nur Zahlen e.Handled = Not charsNumeric.Contains(e.KeyChar.ToString) Case txtFormat.OnlyText ' nur Buchstaben e.Handled = Not charsAlpha.Contains(e.KeyChar.ToString.ToUpper) Case txtFormat.NumericAndText ' Zahlen und Buchstaben e.Handled = (Not charsNumeric.Contains(e.KeyChar.ToString) AndAlso _ Not charsAlpha.Contains(e.KeyChar.ToString.ToUpper)) Case txtFormat.NumerTextSpecialChars ' Zahlen, Buchstaben und Sonderzeichen e.Handled = (Not charsNumeric.Contains(e.KeyChar.ToString) AndAlso _ Not charsAlpha.Contains(e.KeyChar.ToString.ToUpper) AndAlso _ Not charsSpecial.Contains(e.KeyChar.ToString)) End Select If e.Handled = True Then ' Event auslösen RaiseEvent InvalidChar(sender, e.KeyChar) End If End Select End Sub End Class Anwendungsbeispiel: Private Sub TextBoxEx1_InvalidChar(ByVal sender As Object, _ ByVal KeyChar As Char) Handles TextBoxEx1.InvalidChar lblStatus.Text = "Ungültiges Zeichen: " & KeyChar & vbCrLf & _ "Erlaubte Zeichen sind: " & sender.AllowedChars End Sub Private Sub TextBoxEx1_TextChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles TextBoxEx1.TextChanged lblStatus.Text = "" End Sub Dieser Tipp wurde bereits 12.470 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |