Rubrik: Controls · TextBox & RichTextBox | VB-Versionen: VB4, VB5, VB6 | 22.10.03 |
Sollen Umlaute (äöü, ÄÖÜ) bereits während der Texteingabe entsprechend umgewandelt werden (Ae, Oe, Ue, usw.), lässt sich das wie folgt realisieren:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim nSelLen As Integer
Dim nPos As Integer
' Umlaute
Const sCheck As String = "äöüÄÖÜ"
Const sChange As String = "aouAOU"
With Text1
' Wurde ein Umlaut eingegeben?
nPos = InStr(sCheck, Chr$(KeyAscii))
If nPos > 0 Then
' Ist ein Textbereich markiert?
nSelLen = .SelLength
' Eingabe "blocken" und entsprechend ersetzen
KeyAscii = 0
.SelText = Mid$(sChange, nPos, 1) + "e"
' Falls kein Textbereich markiert war,
' aktuelle Eingabeposition um 2 nach rechts setzen
If nSelLen = 0 Then .SelStart = .SelStart + 2
End If
End With
End Sub