Wie kann ich verhindern, dass sich eine InputBox beim Klick des OK-Buttons schließt?

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Wie kann ich verhindern, dass sich eine InputBox beim Klick des OK-Buttons schließt?

    Arbeite gerade an einer App, in der du dich registrieren kannst und einen Verifizierungscode bekommst, ohne die du keinen Zugang erhältst.
    Ich hätte gerne, dass diese InputBox, die den Verifizierungcode überprüft, nicht gleich beim OK-Drücken geschlossen wird. So sieht das bisher aus:

    VB.NET-Quellcode

    1. Dim Input
    2. Input = InputBox("Du hast gerade an deiner angegebenen Email einen Code zugesendet bekommen. Bitte kopiere ihn in diese Zeile, um dich vollständig zu registrieren und alle Vorteile nutzen zu können.")
    3. If Input = Form5.Label4.Text Then
    4. Try
    5. ' Emaildaten hier ausgelassen, damit die Passwörter nicht öffentlich sichtbar sind.
    6. ...
    7. Smtp_Server.Send(e_mail)
    8. My.Computer.FileSystem.CreateDirectory("Anmeldedaten")
    9. My.Computer.FileSystem.WriteAllText("Anmeldedaten/em.txt", MaskedTextBox1.Text, False)
    10. My.Computer.FileSystem.WriteAllText("Anmeldedaten/pw.txt", TextBox4.Text, False)
    11. If MsgBox("Du wurdest erfolgreich registriert.",
    12. MessageBoxIcon.Information) _
    13. = DialogResult.OK Then
    14. Form1.Show()
    15. Me.Hide()
    16. End If
    17. Catch error_t As Exception
    18. MsgBox("Irgendwas stimmt mit deiner E-Mail nicht. Entweder ist sie ungültig oder sie existiert nicht. Bitte gib deine E-Mail richtig an.")
    19. End Try
    20. Else
    21. MessageBox.Show("Dein angegebener Code ist falsch.", "Falscher Code!",
    22. MessageBoxButtons.OK, MessageBoxIcon.Error)
    23. End If

    Die InputBox soll im Falle des Richtigseins so sein wie es hier steht, jedoch bei "Else" soll es sich nicht sofort schließen, damit der Nutzer seine Angabe noch berichtigen kann. Wie stelle ich das an? ?(
    @VB1963 Jou.

    iZeuss schrieb:

    VB.NET-Quellcode

    1. If Input = Form5.Label4.Text Then

    iZeuss schrieb:

    VB.NET-Quellcode

    1. Form1.Show()
    Mit solch Code kommste in .NET nicht weit.
    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!

    iZeuss schrieb:

    falsch
    Das ist alter VB6-Ranz-Kompatibilitätsmodus von VB.NET, weil Du nicht auf eine von Dir erstellte Instanz zugreifst. Gugst Du zum wiederholten Male hier.
    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!

    iZeuss schrieb:

    Was ist an Form1.Show() falsch?

    Form1 ist eine Klasse (Bauplan eines Objekts) und du musst nach dem Bauplan halt ein Objekt erstellen...

    Stelle dir vor, du möchtest ein Haus bauen. Der Architekt erstellt dir einen Plan (Klasse) wie das Haus gebaut werden soll.
    Dann hast du einen Plan (Klasse) in der Hand, aber immer noch nicht dein Haus (Objekt), in dem du einmal wohnen willst...
    Das Haus muss erst einmal gebaut werden... Dein zukünftiger Nachbar, gefällt dein Haus und du gibst ihm deinen Plan (Klasse) des Hauses.
    Und der Nachbar erbaut noch einmal das gleiche Haus (Objekt2) neben deinem Haus (Objekt1)...
    Schaue auch einmal bei MSDN hinein, wie leicht das Hausbauen geht...

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „VB1963“ ()