Hi,
ich habe ein Problem mit einer logischen UND-Verknüpfung. Das Problem liegt darin, dass ich Prüfen möchte, ob ein Text in eine
Textbox eingegeben wurde UND ob die Hintergrundfarbe der Textbox NICHT weiß ist. Mein erster Ansatz lautet wie folgt:
if(txt.Text.Length > 0 &&
(txt.BackColor.R != 255 && txt.BackColor.G != 255 && txt.BackColor.B != 255))
ist aber logisch, dass es nicht funktioniert, da es ja auch möglich ist, dass R ODER G ODER B 255 sein kann und somit die
Bedingung nicht erfüllt ist. Wie kann ich prüfen, ob wirklich ALLE drei Werte 255 sind?
Beste Grüße
Chriss
Prüfen, ob die Hintergrundfarbe nicht weiß ist, könntest du auch so:
if (txt.BackColor != Color.White)
{
}
Hi,
das hab ich natürlich schon versucht und es funktioniert leider nicht.
Ich gehe mal davon aus, dass in einem Color Objekt noch weitere relevante Daten
gespeichert sind, die zum Vergleich hinzugezogen werden.
Ich könnte natürlich auch alle drei zusammenzählen und prüfen ob 765 dabei raus kommt,
allerdings würde ich gerne wissen (rein interessehalber), wie ich das mit dem o. g. Ansatz lösen kann.
Beste Grüße
Chriss
== ueberprueft aber noch Zustandsflags.
Siehe Color.Equality-Operator
Am besten waere daher:
if (txt.BackColor.ToArgb() != Color.White.ToArgb())
Das macht die Sache auch leserlicher, im Gegensatz zur Variante mit den Zahlenwerten. 😉
Ansonsten:
!(txt.BackColor.R == 255 && txt.BackColor.G == 255 && txt.BackColor.B == 255)
Hallo chriss_2oo4,
sowas kann man sich nun wirklich leicht selbst überlegen. Du willst herausfinden, ob es nicht der Fall ist, dass alle drei Werte gleich 255 sind.
!(txt.BackColor.R == 255 && txt.BackColor.G == 255 && txt.BackColor.B == 255)
oder was das gleiche ist, dass mindestens einer der Werte ungleich 255 ist, also der erste, der zweite (inklusiv-)oder der dritte ungleich 255 ist.
(txt.BackColor.R != 255 || txt.BackColor.G != 255 || txt.BackColor.B != 255)
Sowas muss man aus dem FF können, selbst wenn man mitten in der Nacht geweckt wird.
herbivore