vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Suche Visual-Basic Code
Re: nochmal Sichere unsichtbare Eingabe 
Autor: ModeratorDieter (Moderator)
Datum: 21.12.01 20:50

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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
nochmal Sichere unsichtbare Eingabe121Claus21.12.01 16:10
Re: nochmal Sichere unsichtbare Eingabe308ModeratorDieter21.12.01 20:50

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel