My.Settings.- Problem

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Gelöschter Benutzer.

    My.Settings.- Problem

    Hey Leute ich brauch mal wieder eure Hilfe :D

    Ich habe eine Form in der man sich registrieren kann über My.Settings(.UserN1) und My.Settings(.UserP1) - Registrieren.vb

    UserN1 = UserName N°1 und UserP1 = UserPasswort N°1 - Es gibst insgesamt drei Username Möglichkeiten

    Hier mal der Code

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    2. If My.Settings.UserN1 = TextBox1.Text Or My.Settings.UserN3 = TextBox1.Text Or My.Settings.UserN3 = TextBox1.Text Then
    3. MsgBox("Dieser Benutzername wird bereits verwendet.", MsgBoxStyle.Critical, "Achtung")
    4. Else
    5. MsgBox("Möchten Sie wirklich |" & TextBox1.Text & "| heißen?", MsgBoxStyle.YesNo, "Benutzername")
    6. Select Case MsgBoxResult.Yes
    7. Case My.Settings.UserN1 = ""
    8. If TextBox2.Text = TextBox3.Text Then
    9. My.Settings.UserN1 = TextBox1.Text
    10. My.Settings.UserP1 = TextBox2.Text
    11. My.Settings.Save()
    12. Else
    13. MsgBox("Die Passwörter stimmen nicht überein!", MsgBoxStyle.Critical, "Warnung")
    14. End If
    15. Case My.Settings.UserN2 = ""
    16. If TextBox2.Text = TextBox3.Text Then
    17. My.Settings.UserN2 = TextBox1.Text
    18. My.Settings.UserP2 = TextBox2.Text
    19. My.Settings.Save()
    20. Else
    21. MsgBox("Die Passwörter stimmen nicht überein!", MsgBoxStyle.Critical, "Warnung")
    22. End If
    23. Case My.Settings.UserN3 = ""
    24. If TextBox2.Text = TextBox3.Text Then
    25. My.Settings.UserN3 = TextBox1.Text
    26. My.Settings.UserP3 = TextBox2.Text
    27. My.Settings.Save()
    28. Else
    29. MsgBox("Die Passwörter stimmen nicht überein!", MsgBoxStyle.Critical, "Warnung")
    30. End If
    31. Case Else
    32. Me.Refresh()
    33. MsgBox("Sie haben die maximale Anzahl der Accounts erreicht!", MsgBoxStyle.Critical, "Warnung")
    34. End Select
    35. End If
    36. End Sub


    Da immer MsgBox("Sie haben die maximale Anzahl der Accounts erreicht!", MsgBoxStyle.Critical, "Warnung") auftaucht, habe ich mal bei meiner ersten Form das hier geschrieben:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Login_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. My.Settings.UserN1 = ""
    3. My.Settings.UserN2 = ""
    4. My.Settings.UserN3 = ""
    5. My.Settings.UserP1 = ""
    6. My.Settings.UserP2 = ""
    7. My.Settings.UserP3 = ""
    8. End Sub


    Doch die MsgBox taucht wieder auf?!
    Ich sehe meinen Fehler nicht. Bitte um Hilfe! :thumbsup:
    Ein Loginsystem mit My.Settings ist ziemlich leicht knackbar und auch keine geeignete Methode.
    Du solltest ​MsgBox btw durch ​MessageBox.Show ersetzen und es reicht auch, wenn Du die ​Save-Methode einmal aufrufst.
    Auch kannst Du das, wenn eingestellt, weglassen, dann übernimmt das der Designer.

    Überlege, ob ein Login Sinn macht, wie gesagt, absolut unsicher, kann ich Dir in 1 Minute knacken. ;)
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    MsgBox kommt aus VB6, was in .NET nichts mehr zu suchen hat. Von daher sollte man es durch moderne Varianten ablösen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @Gesuchter Kurz und gut:
    Du musst den Rückgabewert der Messagebox auswerten. Und mach gleich noch Gänsefüßchen um den Namen:

    VB.NET-Quellcode

    1. Dim res = MessageBox.Show("Möchten Sie wirklich """ & TextBox1.Text & """ heißen?", "Benutzername", MessageBoxButtons.YesNo)
    2. Select Case res
    3. Case Windows.Forms.DialogResult.Yes
    4. MessageBox.Show("Yes")
    5. Case Windows.Forms.DialogResult.No
    6. MessageBox.Show("No")
    7. End Select
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!