Button einschalten wenn bestimmte Textboxen ausgefüllt sind

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von Manny89.

    Button einschalten wenn bestimmte Textboxen ausgefüllt sind

    Ich habe mir ein kleines Programm geschrieben mit dem ich Emails verschicken kann.
    Hier mal ein Bild: suckmypic.net/v68q8dkv.jpg

    Meine Frage ist es, wie muss ich den Code schreiben, damit der Sende Button erst aktiv wird wenn die Textboxen:"Deine Email, Dein Passwort, Betreff, Email des Empfängers und die RichTextbox ausgefüllt sind?

    Hier mal mein Code:

    VB.NET-Quellcode

    1. Imports System.Net.Mail
    2. Public Class Email
    3. Private Sub btnLöschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLöschen.Click EmailText.Text = "" End Sub
    4. Private Sub Email_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. End Sub
    6. Private Sub btnSenden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSenden.Click Dim meineMail As New MailMessage Try meineMail.From = New MailAddress(txtDeineMail.Text) meineMail.To.Add(txtEmpfänger.Text) meineMail.Subject = (txtBetreff.Text) meineMail.Body = (EmailText.Text) Dim smtp As New SmtpClient("smtp.web.de") smtp.Port = 587 smtp.EnableSsl = True smtp.Credentials = New System.Net.NetworkCredential(txtDeineMail.Text, txtPasswort.Text) smtp.Send(meineMail) Catch ex As Exception MsgBox("Fehler aufgetreten") End Try End Sub
    7. Private Sub txtPasswort_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPasswort.TextChanged txtPasswort.PasswordChar = "*" End Sub
    8. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click txtPasswort.PasswordChar = "" End Sub
    9. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close()
    10. End Sub
    11. End Class
    Eventuell ist das TextChanged Event der Textboxen nützlich.

    Dann wird automatisch der Button "enabled" wenn der Input passt.

    Zweite Möglichkeit:
    Button aktiv lassen, aber beim Drücken Überprüfen ob der Input passt.
    Wenn er nicht passt z.B. MessageBox anzeigen lassen.
    Eine if Verschachtelung ist in dem Fall Schwachsinn. Boolsche Werte Verknüpft man mit den entsprechenden Operatoren (AND, OR, ...)
    z.B. im Click event:

    VB.NET-Quellcode

    1. If TextBox1.Text = "" OrElse TextBox2.Text = "" OrElse ... Then
    2. 'Meldung an den User: Alle Felder ausfüllen
    3. Exit Sub
    4. End If
    Hey,

    versuchs mal so.

    VB.NET-Quellcode

    1. Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox4.TextChanged, TextBox3.TextChanged, TextBox2.TextChanged, TextBox1.TextChanged
    2. If Me.TextBox1.Text = "" OrElse Me.TextBox2.Text = "" OrElse Me.TextBox3.Text = "" OrElse Me.TextBox4.Text = "" Then
    3. Me.Button1.Enabled = False
    4. Else
    5. Me.Button1.Enabled = True
    6. End If
    7. End Sub


    Deinen Button stellst Du im Designer per Default auf Enabled=False.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    Manny89 schrieb:

    denn wenn man nicht alles ausgefüllt hat, kommt ja sowieso ein Fehler.


    Seltsame Strategie in so einem Fall.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Ach ja, meistens empfiehlt sich eine Prüfung mit

    VB.NET-Quellcode

    1. String.IsNullOrWhiteSpace()
    wenn du nicht gerade Eingaben á la " " erlauben möchtest.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Try Catch wird häufig genutzt um Fehler aller Art abzufangen, weil der Programmierer zu faul ist vorher die Stituationen genau zu analysieren.
    z.B. bei Konvertierungen ist es eigentlich immer unnötig.
    Die Holzhammer-Methode "Catch ex As Exception" fängt manchmal auch verschiedene Exceptions ein, ohne dass du zu merkst.
    Was genau dann im Detail da eigentlich schief gelaufen ist, wird oftmals ignoriert. Auf viele Fehler, die Exceptions auslösen kann vorher schon reagiert werden.
    Wenn man sie nutzt dann sollte man auch nur die Exceptions fangen, die man auch behandeln kann. Dann wird auch wirklich nur diese eine Exception gefangen. Bei anderen Exceptions stürtzt das Programm ab.
    Eine Situation, in der Try/Catch OK ist, ist der Zugriff auf Dateien bzw. das Abfangen der "unauthorizedaccessexception". Die kann man nicht so einfach prüfen.

    siehe:
    TryCatch ist ein heißes Eisen
    Na dann, gewöhn Dir eben an, auf das Try-Catch zu verzichten, wenn es geht. Und in Deinem speziellen Fall ist es fast Pflicht, Try-Catch wegzulassen, weil es eben keinen Sinn macht. Du hast eine Situation, die Du vorher prüfen kannst. Solange Du nicht weisst, wie man mit Exceptions umgeht, wie man sie gezielt einsetzen kann, um sein Programm zu lenken => lass es weg, wenn es geht. Punkt.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o