If Abfrage, wenn eine oder mehrere von 4 Textboxen leer sein sollte

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    If Abfrage, wenn eine oder mehrere von 4 Textboxen leer sein sollte

    Hallo,
    ich hänge schon wieder vor einem Problem...
    Ich habe 4 Textboxen.
    Nun will ich prüfen ob auch wirklich in allen 4 Textboxen etwas eingetragen ist. Sollte in einer oder mehreren Textboxen nichts stehen, dann soll eine MsgBox kommen, da dies ein Fehler sein soll. Wenn aber alle 4 Textboxen leer sein sollten, dann wäre das ok!
    Also entweder müssen alle mit einem Wert befüllt sein oder alle komplett leer.
    Wahrscheinlich ist das total simpel und ich steh irgendwie gerade auf dem Schlauch....!?!?

    Wie ich alle gleichzeitig Abfrage weiss ich, aber da auch wenn alle leer sind ok sind, wäre meine Denkweise ja doch wieder falsch...

    Quellcode

    1. If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Then
    2. MsgBox("unvollständig!")
    3. Else
    4. '...
    5. End If
    6. Else​

    VB.NET-Quellcode

    1. If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Then
    2. If TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" And TextBox4.Text = "" Then
    3. 'nix machen
    4. Else
    5. MsgBox("unvollständig!")
    6. End If
    7. End If


    Ist vielleich nicht elegant, klappt aber.

    Gruß

    eddi
    Es gäbe mehrere Möglichkeiten. Jetzt geht bestimmt gleich ein Wettstreit los, wer die eleganteste Lösung postet. :P
    Die einfachste Ergänzung zu Deinem Vorschlag:

    VB.NET-Quellcode

    1. If (TextBox1.Text = "" OrElse TextBox2.Text = "" OrElse TextBox3.Text = "" OrElse TextBox4.Text = "") AndAlso Not (TextBox1.Text = "" AndAlso TextBox2.Text = "" AndAlso TextBox3.Text = "" AndAlso TextBox4.Text = "") Then
    2. MessageBox.Show("unvollständig!")
    3. Else
    4. '...
    5. End If

    Du siehst. Laaangatmig.
    Anders:

    VB.NET-Quellcode

    1. Dim Counter = 0
    2. For Each TextBox In {TextBox1, TextBox2, TextBox3, TextBox4}
    3. If TextBox.Text = "" Then Counter += 1
    4. Next
    5. If Counter > 0 AndAlso Counter < 4 Then
    6. MessageBox.Show("unvollständig!")
    7. Else
    8. '...
    9. End If


    ##########

    Code korrigiert. (Dim Counter => Dim Counter = 0 (für Option Infer))
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

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

    Späßleshalber:

    VB.NET-Quellcode

    1. Dim TextBoxArray = {TextBox1, TextBox2, TextBox3, TextBox4}
    2. If TextBoxArray.All(Function(x) x.Text = "") OrElse TextBoxArray.All(Function(x) x.Text <> "") Then
    3. 'ok
    4. Else
    5. 'not ok
    6. End If
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.