Password Char (verstecken/anzeigen)

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von n0ise.

    Password Char (verstecken/anzeigen)

    Hey,

    also guckt mal hier:




    eindeutig was es machen soll, der Sinn is nur zur Übung.

    So nun habe ich nen kleinen Blackout wie ich weitermachen soll..

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If TextBox1.PasswordChar = "*" Then
    3. TextBox1.PasswordChar = ""
    4. End If
    5. End Sub


    Und jetzt zum zweiten Button. Da hatte ich zuerst:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. If TextBox1.Text <> "" Then
    3. TextBox1.PasswordChar = "*"
    4. End If


    Das funktioniert zwar, aber diese Umsetzung ist so eigentlich schlecht..wenn was in der TextBox steht, in "*" umgewandelt wird.

    Ich wollte es so haben das wenn normale Ziffern da stehen, das diese, durch den Button Passwort versteckt werden bzw in den char * umgewandelt werden.

    Und nochwas, Texteingaben vom Benutzer werden doch in VB als "" gekennzeichnet? Oder Bedeutet das, das da dann garnichts in der TextBox steht?
    Wieso übernimsmt du nicht das selbe Prinzip vom ersten Button auch auf den 2. Button??

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. If TextBox1.PasswordChar = "" Then
    3. TextBox1.PasswordChar = "*"
    4. End If
    5. End Sub


    Und alles was zwischen Anführungszeichen steht ist in VB ein String und nicht Benutzereingaben oder sowas. Am besten arbeitest du dir mal erstmal die Grundlagen durch, wenn du schon so ne Frage stellst, ansonsten wirste hier nicht viel Freude haben, wenn du die einfachen Grundlagen noch nicht beherschts, denn die sind einfach elementar wichtig.
    "" bedeutet nicht das eine Textbox leer ist, sondern man vergleicht ob der INHALT einer Textbox dem String "" (nichts) entspricht. Wobei hier <> nicht sonderlich optimal ist weil es heißt größer/kleiner. Bei Zahlen kann man es verwenden, bei Strings ists wegne der Übersicht besser

    If Not Textbox1.Text = "" Then => Wenn nicht Inhalt der Textbox ist "" dann

    noch deutlicher zum lesen ist

    If Not Textbox1.Text = String.Empty Then => Wenn nicht Inhalt der Textbox ist Leerstring dann

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. If TextBox1.PasswordChar = "" Then
    3. TextBox1.PasswordChar = "*"
    4. End If
    5. End Sub
    Das habe ich auch natürlich schon versucht in dem 2. Button, aber Funktioniert nicht..

    ahh, ich hatte in den Eigentschaften der TextBox den Passwordchar auf * ...

    Ich überseh immer viel...und deshalb kommen diese dummen Fehler -.-

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. TextBox1.PasswordChar = ""
    4. End Sub
    5. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    6. TextBox1.PasswordChar = "*"
    7. End Sub
    8. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    9. TextBox1.PasswordChar = "*"
    10. End Sub
    11. End Class



    So gehts, aber meine 1. Idee war nu ein Button der die Funktion hat der beiden.

    Würde denn sowwas funktionieren?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „n0ise“ ()

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. If TextBox1.PasswordChar = "*" Then
    4. TextBox1.PasswordChar = ""
    5. Else
    6. TextBox1.PasswordChar = "*"
    7. End If
    8. End Sub
    9. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    10. TextBox1.PasswordChar = "*"
    11. End Sub
    12. End Class


    Fast so hat ichs am Anfang auch, außer mit dem Load Ereignis..

    Der Fehler war nur weil ich die TextBox Eigenschaft Passwordchar auf * gesetzt habe...

    Immer diese kleinen dumm Fehler können alles zerstören..

    Samus Aran schrieb:

    Hat die TextBox (oder ein davon erbendes Toolbar-Objekt) nicht ne Boolean-Eigenschaft, mit der man die Sternchen an- und ausschalten kann?

    Nein. Das wird über Property PasswordChar gesteuert.
    PasswordChar = String.Empty -> Text wird normal angezeigt
    PasswordChar = c (vom Typ Char) -> Alle Zeichen vom Text durch c ersetzt dargestellt.
    @n0ise: Warum nutzt du nicht die?
    Kenne die garnich, lol, außerdem bin ich bald mit mein 300 Seiten Einsteigerbuch durch ^^ da war sowas mit dem Passwordchar noch garnicht beschrieben. Ist ja auch eigentlich garnich so wichtig außer bei Logins.

    Nun der ganze Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. If TextBox1.Text = "" Then
    4. Exit Sub
    5. End If
    6. TextBox1.PasswordChar = ""
    7. End Sub
    8. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    9. If TextBox1.Text = "" Then
    10. Exit Sub
    11. End If
    12. TextBox1.PasswordChar = "*"
    13. End Sub
    14. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    15. TextBox1.PasswordChar = "*"
    16. End Sub
    17. End Class