Ich verwende transparentes benutzerdefiniertes Steuerelement basierend auf RichTextBox. Gibt es eine Möglichkeit, Kennwort-Unterstützung wie im regulären TextBox-Steuerelement zu haben.Kennwortzeichen für RichTextBox
Antwort
Es ist einfach zu tun, RTB implementiert tatsächlich Unterstützung für die Passworteingabe. Es ist nur nicht im .NET-Wrapper verfügbar. Fügen Sie Ihrem Projekt eine neue Klasse hinzu und fügen Sie den unten gezeigten Code ein. Kompilieren. Legen Sie das neue Steuerelement oben in der Toolbox auf Ihrem Formular ab.
using System;
using System.Windows.Forms;
class RichPassword : RichTextBox {
protected override CreateParams CreateParams {
get {
// Turn on ES_PASSWORD
var cp = base.CreateParams;
cp.Style |= 0x20;
return cp;
}
}
}
Ja, es gibt einen Weg. Sie müssten Tastenbetätigungen abfangen, bevor sie gezeichnet werden (suchen Sie nach PreviewKeyDown oder ähnlichen Ereignissen) und ändern Sie sie in Sternchen (*). Sie müssen jedoch auch Logik implementieren, um die Zeichenfolge für echte Zeichen zu verwalten.
Hinweis Ich stimme dem Kommentar von Cody Gray zu.
Es ist auch erwähnenswert, dass der Standard Das Win32 'TextBox'-Steuerelement führt ein * Lot * mehr aus, wenn es zum Speichern von Kennwörtern eingerichtet ist, anstatt nur Zeichen als Sternchen/Aufzählungszeichen anzuzeigen. Beispielsweise wird auch das Kopieren eines Kennworts aus dem Textfeld deaktiviert. Sie sind dabei, einen Felsen auf einen Hügel zu rollen, indem Sie versuchen, all dies selbst zu tun, auch wenn Ihre Sicherheitsanforderungen "begrenzt" sind. –
@Cody - Google "Passwort-Revealer". –
@Hans: Ich habe unaussprechliche Dinge in meiner Trickkiste. Die meisten Dinge sind crackable auf * einige * Ebene, wenn Sie bereit sind, hart genug zu versuchen. Ich sage nur, es ist viel wahrscheinlicher, dass der durchschnittliche Benutzer denkt, ein Passwort aus einer Textbox zu kopieren und einzufügen, als einen Passwort-Revealer zu haben. Der Fragesteller erwähnt, dass Sicherheitsbedenken "begrenzt" sind, so dass ich denke, dass diejenigen, die auf diese Art von Software zurückgreifen, nicht diejenigen auslassen, die die Tastenkombination Strg + C kennen. –
Dies hat für mich funktioniert und den Zweck gelöst.
Public Class RichPassword
Inherits RichTextBox
Private Const ES_PASSWORD = 32
Protected Overrides ReadOnly Property CreateParams As CreateParams
Get
Dim CP = MyBase.CreateParams
CP.Style = CP.Style Or 32
Return CP
End Get
End Property
End Class
- 1. RichTextBox
- 2. WPF RichTextBox-Unterstützung für Dokumentverknüpfungen?
- 3. Benutzersteuerung mit RichTextBox, bindbare RichTextBox
- 4. Eine wirklich gute RichTextBox Alternative für .NET
- 5. Light Richtextbox-Steuerelement für. NET (WinForms)
- 6. .NET RichTextBox rückgängig machen
- 7. WPF Richtextbox FontFace/FontSize
- 8. RichTextBox Entsprechung von TextBox.AcceptsReturn
- 9. AutoScrolling in RichTextBox verhindern
- 10. RichTextBox ausgewählt Texteigenschaft
- 11. WPF RichTextBox Benutzerdefinierte Texteigenschaft
- 12. Langsam Formatierung von RichTextBox
- 13. richTextBox Anzahl der Zeichen?
- 14. WPF RichTextBox SelectionChanged Leistung
- 15. Farbspezifische Wörter in RichtextBox
- 16. C# RichTextBox Textblockauswahl
- 17. WPF richTextBox-Frage
- 18. Seitenumbruch in Richtextbox einfügen
- 19. Windows Forms RichTextBox Cursorposition
- 20. Celsius-Symbol in RichTextBox
- 21. Farbspezifische Zeilen in RichTextBox
- 22. Autogrow WPF RichTextBox
- 23. C# richtextbox outofmemory
- 24. RichTextBox und Unterstreichungsfarbe
- 25. RichTextBox Bilder Ausgabe
- 26. RichTextBox und Tab-Taste
- 27. RegExp C# und richtextbox
- 28. richtextbox in vb.net
- 29. RichTextBox Farbe ausgewählte Zeilen
- 30. RichTextBox maximale Größenbeschränkung?
* Warum * möchten Sie ein Passwort in einer 'RichTextBox' eingeben? Es klingt, als ob Sie die falsche Steuerung für den Job verwenden. Es ist explizit * nicht für die Eingabe von Passwörtern * ausgelegt und könnte ein Sicherheitsrisiko darstellen. –
Das war ein Teil der Anforderungen an die Benutzeroberflächengestaltung für die Anwendung, um eine Textbearbeitungssteuerung mit Gradientenhintergrund zu haben. Sicherheit ist kein Problem, diese Anwendung hat sehr begrenzte Sicherheitsanforderungen. – user976535
Ist dies eine WinForms- oder WPF-Anwendung? Jedes Mal, wenn Sie sagen, dass "User Interface Design-Anforderungen" jede Art von tatsächlichen Funktionalität trump, schreit nur für die App in WPF geschrieben werden ... –