Hallo Claus,
jepp - kein Problem:
Füge folgende beiden Subs in ein Modul ein:
Public Sub tx_KeyPress(TextBox As TextBox, KeyAscii As Integer)
Dim sText As String
Dim lPos As Long
Dim lLen As Long
With TextBox
<font color=green>' aktueller Inhalt</font>
sText = .Tag
<font color=green>' Eingabeposition</font>
lPos = .SelStart
<font color=green>' Falls Zeichen markiert sind -> Länge der
' Markierung</font>
lLen = .SelLength
Select Case KeyAscii
Case 8
<font color=green>' Backspace</font>
If lLen > 0 Then
<font color=green>' markierten Textbereich löschen</font>
sText = Left$(sText, lPos) + _
Mid$(sText, lPos + lLen + 1)
Else
If lPos > 0 Then
<font color=green>' Zeichen links von der Eingabemarke
' löschen</font>
sText = Left$(sText, lPos - 1) + _
Mid$(sText, lPos + 1)
End If
End If
Case Is > 31
<font color=green>' Zeichen an der Eingabemarke einfügen
' (ggf. Markierung ersetzen)</font>
sText = Left$(sText, lPos) + Chr$(KeyAscii) + _
Mid$(sText, lPos + lLen + 1)
<font color=green>' Eingabe im Eingabefeld als Leerzeichen
' darstellen (42, falls Sternchen gewünscht ;-))</font>
KeyAscii = 42
End Select
.Tag = sText
End With
End Sub
Public Sub tx_KeyDown(TextBox As TextBox, KeyCode As Integer, Shift As Integer)
Dim sText As String
Dim lPos As Long
Dim lLen As Long
With TextBox
<font color=green>' aktueller Inhalt</font>
sText = .Tag
<font color=green>' Eingabeposition</font>
lPos = .SelStart
<font color=green>' Falls Zeichen markiert sind -> Länge der
' Markierung</font>
lLen = .SelLength
Select Case KeyCode
Case vbKeyDelete
<font color=green>' Entfernen-Taste</font>
If lLen > 0 Then
<font color=green>' markierten Textbereich löschen</font>
sText = Left$(sText, lPos) + _
Mid$(sText, lPos + lLen + 1)
Else
If lPos > 0 Then
<font color=green>' Zeiche "unter" der Einfügemarke löschen</font>
sText = Left$(sText, lPos) + _
Mid$(sText, lPos + 2)
End If
End If
Case 86
If Shift = 2 Then
<font color=green>' Strg+V verhinern
' (Einfügen aus der Zwischenablage)</font>
Clipboard.Clear
End If
End Select
<font color=green>' neuen Inhalt in der Tag-Eigenschaft speichern</font>
.Tag = sText
End With
End Sub Ab sofort brauchst Du in den Forms in den entsprechenden TextBox-Events nur diese Subs aufzurufen:
<font color=green>' In der Form</font>
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
tx_KeyDown Text1, KeyCode, Shift
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
tx_KeyPress Text1, KeyAscii
End Sub Alles klar?
Frohe "gesicherte" Weihnachten
Cu
Dieter |