Automatisch groß oder klein
Groß- oder Kleinschreibung in der Textbox erzwingen
Möchte man in einer TextBox reine Groß- oder Kleinschreibung erzwingen, genügt das Setzen des entsprechenden TextBox-Stils, um die Eingaben des Benutzers automatisch in Groß- oder Kleinschreibung umzuwandeln.
Wenn Sie wollen, dass Eingaben in einer Textbox nur groß- oder klein geschrieben werden können, können Sie entweder den Text nachträglich über die Funktionen UCase$ und LCase$ im Change-Ereignis umwandeln, oder überreden die TextBox gleich selber diese Umwandlung vorzunehmen. Dazu muss lediglich der TextBox-Stil ES_UPPERCASE oder ES_LOWERCASE über die API Funktion SetWindowLong gesetzt werden.
Zwei Eigenschafts-Prozeduren erledigen sämtliches Beiwerk. Über die Get-Prozedur, kann der aktuelle Stil gelesen werden, über die Let-Prozedur wird der gewünschte Stil festgelegt. Als Parameter erwarten diese Prozeduren die betreffende TextBox:
Private Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long _ ) As Long Private Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long _ ) As Long Private Const GWL_STYLE = (-16) Private Const ES_LOWERCASE = &H10& Private Const ES_UPPERCASE = &H8& Public Enum TextConversionConstants tcNone = 0 tcUppercase = 1 tcLowercase = 2 End Enum Public Property Get TBCaseConversion(ByRef TextBox As TextBox) _ As TextConversionConstants Dim lStyle As Long lStyle = GetWindowLong(TextBox.hwnd, GWL_STYLE) If (lStyle And ES_LOWERCASE) = ES_LOWERCASE Then TBCaseConversion = tcLowercase ElseIf (lStyle And ES_UPPERCASE) = ES_UPPERCASE Then TBCaseConversion = tcUppercase End If End Property Public Property Let TBCaseConversion(ByRef TextBox As TextBox, _ ByVal New_Value As TextConversionConstants) Dim lStyle As Long lStyle = GetWindowLong(TextBox.hwnd, GWL_STYLE) lStyle = lStyle And Not (ES_LOWERCASE Or ES_UPPERCASE) Select Case New_Value Case tcLowercase lStyle = lStyle Or ES_LOWERCASE Case tcUppercase lStyle = lStyle Or ES_UPPERCASE End Select SetWindowLong TextBox.hwnd, GWL_STYLE, lStyle End Property
Download
- Modul modTBCaseConv und Beispielprojekt (tbcaseconv.zip - 3 KB)