CheckBox erst freischalten wenn TextBox ausgefüllt ist

  • VB.NET

SSL ist deaktiviert! Aktivieren Sie SSL für diese Sitzung, um eine sichere Verbindung herzustellen.

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

    Da stellt sich die Frage, wann bei Dir die TextBoxen ausgefüllt genug sind. Wenn irgendwas drinsteht? Dann z.B.

    VB.NET-Quellcode

    1. CheckBox1.Enabled = TextBox1.Text <> String.Empty AndAlso TextBox2.Text <> String.Empty AndAlso TextBox3.Text <> String.Empty AndAlso TextBox4.Text <> String.Empty AndAlso TextBox5.Text <> String.Empty

    Ist die grundlegendste Variante. Eleganter geht immer.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von VaporiZed, mal wieder aus Grammatikgründen.

    ― häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    ― Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Das funktioniert irgendwie nicht.

    Also zur Erklärung:
    - TextBox4 nur Buchstaben
    - TextBox5 nur Buchstaben
    - TextBox6 nur Zahlen
    - TextBox7 nur Zahlen
    - TextBox8 nur Buchstaben

    Die CheckBox ist auf False gesetzt. (in den Einstellungen)

    Die TextBox für Buchstaben ist folgendermaßen geschrieben:

    "Private Sub TextBox8_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox8.KeyPress
    Dim c = e.KeyChar.ToString
    If c >= "a" AndAlso c <= "z" OrElse c >= "A" AndAlso c <= "Z" Then
    Else
    e.Handled = True
    End If
    End Sub"

    Für Zahlen:
    "Private Sub TextBox7_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox7.KeyPress
    Dim c = e.KeyChar.ToString
    If Not Char.IsDigit(c, 0) Then
    e.Handled = True
    End If
    End Sub"

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

    lenuamred schrieb:

    Das funktioniert irgendwie nicht.
    Sorry, aber willst Du mich veräppeln? Woher soll ich denn wissen, wie Deine CEs heißen? Benenn in dem von mir geposteten Code die CEs entsprechend um (TextBox1 wird zu TextBox 4 usw., da die erste auszuwertende TB bei Dir eben TextBox4 heißt usw.) und teste nochmal. Oder meinst Du was anderes? Wenn ja, was? Meine Glaskugel ist gerade leider wegen spontaner Selbsteintrübung bei Hersteller.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von VaporiZed, mal wieder aus Grammatikgründen.

    ― häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    ― Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    CheckBox2.Enabled = TextBox4.Text <> String.Empty AndAlso TextBox5.Text <> String.Empty AndAlso TextBox6.Text <> String.Empty AndAlso TextBox7.Text <> String.Empty AndAlso TextBox8.Text <> String.Empty

    So umgeschrieben, aber die CheckBox öffnet dann nicht, dass ist mein Problem.

    Sorry
    Mit diesem Code ist die CheckBox2 dann aktiv, wenn in allen genannten TextBoxen was drinsteht. Hast Du das probiert? Denn bei mir läuft das.
    Eh, Moooment. WO hast Du diese Codezeile stehen? Doch ganz bestimmt in einer eigenen Prodezur z.B. namens CheckTextBoxes. Und diese Prozedur wird am Ende jedes TextBox-TextChanged- oder TextBox_KeyPress-EventHandlers aufgerufen, richtig?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von VaporiZed, mal wieder aus Grammatikgründen.

    ― häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    ― Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Wo steht Dein Code aus Post#5? Wenn er im CheckBox2.Changed-EventHandler steht, wär das ziemlicher Hunz. Denn dann wird der TextBox-Überprüfungscode immer dann ausgeführt, wenn man das CheckBox-Häkchen ändert. Der Überprüfungscode muss aber immer dann aufgerufen werden, wenn sich der Inhalt von einer der betroffenen TextBoxen ändert. Also - wie geschrieben - in den TextBox4,5,6,7,8-TextChanged-EventHandlern oder in den TextBox4,5,6,7,8-KeyPress-EventHandlern
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von VaporiZed, mal wieder aus Grammatikgründen.

    ― häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    ― Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.

    lenuamred schrieb:

    So umgeschrieben, aber die CheckBox öffnet dann nicht
    Wie wird der Initialzustand realisiert?
    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).
    VB-Fragen über PN / Konversation werden ignoriert!

    lenuamred schrieb:

    Muss es dann in jeden Sub der TextBox geschrieben werden?
    Du kannst eine Prozedur als Handler mehrerer Controls verwenden:

    VB.NET-Quellcode

    1. Sub xxx(...) Handles Button1.Click, Button2.Click, Button3.Click
    2. ' ...
    3. End Sub
    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).
    VB-Fragen über PN / Konversation werden ignoriert!

    lenuamred schrieb:

    CheckBox2.Enabled = TextBox4.Text <> String.Empty AndAlso TextBox5.Text <> String.Empty AndAlso TextBox6.Text <> String.Empty AndAlso TextBox7.Text <> String.Empty AndAlso TextBox8.Text <> String.Empty
    Hier ist unbedingt eine ordentliche Benennung der Contols von Nöten...