Bei der Eingabe von z.B. Namen in ein Textfeld stellt VB.NET die VbStrConv-Funktion zur Verfügung, mit der jedes Wort des übergebenen Strings autom. groß geschrieben wird. Ärgerlich ist nur, dass die Korrektur des Textes erst nach dem Verlust des Focus durchgeführt werden kann, oder der Cursor bleibt an Position 0 des Textfeldes. Folgendes Ergebnis sollte zur Laufzeit entstehn: aus "m" wird bei weiterer Eingabe "Mü". Gleichzeitig sollte diese Funktion optional sein, um bei Namen wie "von Eckstein" auch Kleinschreibung zuzulassen. Hierfür können wir eine neue Klasse txtBox mit folgendem Quelltext erstellen:
Imports System.Windows.Forms Public Class txtBox ' von Standard TextBox abgeleitete Klasse Inherits TextBox Private pos As Integer Private kleinschreibung As Double Private mygroßschreibung As Boolean Sub New() MyBase.New() ' Eigenschaft wird auf FALSE gesetzt mygroßschreibung = False End Sub ' Eigenschaft wird erstellt Public Property Großschreibung() As Boolean Get Return mygroßschreibung End Get Set(ByVal value As Boolean) mygroßschreibung = value End Set End Property Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs) If mygroßschreibung = False Then Exit Sub pos = Me.SelectionStart MyBase.OnKeyPress(e) ' Eigenschaft wird überprüft If kleinschreibung = 0 Then If Me.SelectionStart = 0 Then If Me.TextLength = 1 Then ' Bei Eingabe des zweiten Buchstaben wird ' der Anfangsbuchstabe großgeschrieben Me.Text = StrConv(Me.Text, VbStrConv.ProperCase) Me.SelectionStart = Len(Me.Text) Else ' wird ein Schreibfehler korrigiert (Textbox ist ' gefüllt), wird der 1. Buchstabe großgeschrieben Me.Text = StrConv(Me.Text, VbStrConv.ProperCase) Me.SelectionStart = pos End If Else Me.Text = StrConv(Me.Text, VbStrConv.ProperCase) Me.SelectionStart = pos End If End If End Sub Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs) pos = Me.SelectionStart MyBase.OnKeyDown(e) If kleinschreibung = 0 Then ' Linke und rechte Pfeiltaste bleiben aktiv If e.KeyCode = Keys.Left Or e.KeyCode = Keys.Right Then Me.Text = StrConv(Me.Text, VbStrConv.ProperCase) Me.SelectionStart = pos End If End If End Sub Protected Overrides Sub OnKeyUp(ByVal e As System.Windows.Forms.KeyEventArgs) MyBase.OnKeyUp(e) ' F2-Taste zum Ein und Ausschalten der ' Funktion in der jeweiligen Txtbox If e.KeyCode = Keys.F2 Then If kleinschreibung = 0 Then kleinschreibung = 1 Else kleinschreibung = 0 End If End If End Sub End Class Nach dem erneuten Erstellen des Projekts steht die Klasse in der Toolbox als txtBox-Eintrag zur Verfügung. Wird ein neues Textfeld benötigt, bei dem die Groß- und Kleinschreibung automatisch berücksichtigt wird, zieht man einfach das txtBox-Element aus der Toolbox auf die Form. Nun noch die Eigenschaft "Sonstiges/Großschreibung" auf TRUE setzen und die Funktion steht bereit. Die Funktion lässt sich durch drücken der F2-Taste aus- und einschalten wenn die jeweilige Textbox den Focus besitzt. Dieser Tipp wurde bereits 12.932 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. |
sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 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. |