VB 5/6-Tipp 0397: Mehrzeiliges Paßwort-Feld ermöglichen
von Marcus Woida
Beschreibung
Hier wird eine mehrzeilige Paßwort-Eingabe ermöglicht. Das PassWodChar an sich, ist nicht auf das bekannte * beschränkt, sondern kann optional auf jedes andere eingestellt werden.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Schaltfläche "Command1" ' Steuerelement: Textfeld "Text1" ' Steuerelement: Beschriftungsfeld "Label1" 'die PasswordChar-Eigenschaft eines Text-Controls funktioniert 'nur, wenn die MultiLine-Eigenschaft auf False gesetzt ist. 'Hat man nun ein Mehrzeiliges Eingabefeld, das man verbergen 'möchte, hilft folgender Code weiter: 'Autor: Marcus Woida 'E-Mail: m.Woida@t-online.de Option Explicit Public strEingabe As String Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) 'Pfeiltasten (links, rechts,oben, unten) '<Einfg>, <Entf>, <Pos1> und <Ende> deaktivieren Select Case KeyCode Case 37 To 40, 45, 6, 36, 35: KeyCode = 0 Case Else End Select End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 8 And Len(strEingabe) > 0 Then 'wenn Backspace-Taste strEingabe = Left$(strEingabe, Len(strEingabe) - 1) Else 'sonst String aktualisieren und Anzeige verbergen strEingabe = strEingabe & Chr$(KeyAscii) 'Statt des Sterns (KeyAscii=42) kann man auch beliebige 'Zeichen anzeigen lassen: KeyAscii = Int(Rnd * 255) + 1 KeyAscii = 42 End If End Sub Private Sub Command1_Click() MsgBox strEingabe End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB5 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB6 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 3 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Micha am 01.06.2005 um 10:32
Wenn das Eingabefeld leer ist und Backspace gedrückt wird macht es einen Stern rein obwohl das nich sein dürfte. Daher folgender Änderungsvorschlag :
anstatt:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 And Len(strEingabe) > 0 Then
'wenn Backspace-Taste
strEingabe = Left$(strEingabe, Len(strEingabe) - 1)
Else ... ... ...
... ... ...
den Code so verwenden:
Private Sub Text1_KeyPress(KeyAscii As Integer)
'wenn Backspace-Taste
If KeyAscii = 8 Then
'wenn das Textfeld nicht leer
If Len(strPass) > 0 Then
strPass = Left$(strPass, Len(strPass) - 1)
End If
Else ... ... ...
... ... ...
Ciao Micha
Kommentar von Eizvber am 20.08.2004 um 19:03
@Chrisibuu
Normalerweise kann man Passwort-Kästchen nur einzeilig machen.
Kommentar von Chrisibuu am 03.01.2004 um 22:45
Warum so umständlich? Macht doch einfach:
Form_Load()
Text1.Multiline = True
End Sub
Ist doch viel einfacher, oder?