Hallo,
ich habe ein Problem mit einer simplen if-Anweisung, welches ich mir absolut nicht erklären kann.
Das Problem ist trivial: Wenn in eine gewisse TextBox leer ist, soll ein bestimmtes Steuerelement (in meinem Fall eine GroupBox mit edlichen weiteren TextBoxen) ausgegraut werden. Dies soll auch passieren, nachdem Text aus der TextBox wieder gelöscht wurde und die TextBox somit quasi wieder leer ist.
Gelöst habe ich das - nicht unerheblich durch Probieren - wie folgt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| private void txt_AddNew_TextChanged(object sender, TextChangedEventArgs e) { if (String.IsNullOrEmpty(txt_AddNew_0.Text)) ; { grp_Parameter.IsEnabled = true; } if (String.IsNullOrEmpty(txt_AddNew_0.Text)) { grp_Parameter.IsEnabled = false; } } |
Mir unerklärlich ist der Fakt, dass mein Vorhaben nur funktioniert, wenn hinter meiner ersten if-Anweisung ein Semikolon ";" steht. Ist dieses nicht da, wird die GroupBox nicht aktiviert, sprich sie bleibt ausgegraut, egal ob Text in der TextBox steht oder nicht.
if-Anweisung erhalten meiner Kenntnis nach hinter der Bedingung kein Semikolon, genauso wie man es bei der zweiten if-Anweisung sieht. Aus irgendeinem Grund setzt mir Visual Studio aber automatisch ein ";" und unterstreicht mir das auch noch grün. Ist das ";" nicht da, ist wie berichtet die richtige Funktionalität nicht gegeben.
Warum ist das so? Was passiert hier?
Über eine Antwort würde ich mich sehr freuen!