2012-04-03 8 views
1

Ich bin frustriert mit Google-Abfrage auf Code, also werde ich nur Sie alle Experten fragen.Wenn beide Checkboxen falsch false tun?

Ich habe ein < 500-Zeilen-Programm, das Dateien aus Clearcase in einem Baum jetzt listet ich möchte auf sie klicken und sie ein-/auschecken. Der Checkout-Teil, den ich über die Befehlszeile oder das Plugin ausführen kann (:: purchase :: clearcase ist nicht einfach zu programmieren), muss ich ankreuzen, wenn ich einen Checkout einchecke und wenn keiner ausgewählt ist (beide falsch) möchte ich es melden der Benutzer. Ich habe den folgenden Code und es funktioniert ... außer, dass es immer die "nicht ausgewählt" Nachricht anzeigt, da ein Flag immer falsch ist.

if (checkBox1.checked == true 
{ 
    MessageBox.Show("this") 
} 
if (checkBox2.checked == true 
{ 
    MessageBox.Show("THAT") 
} 
if (checkbox1.checked == false | checkbox2.checked == false) 
{ 
    MessageBox.show("You didn't select this or THAT") 
} 

Nach der ersten Wahl heißt es immer „dass“ oder „dieses“ und dann „Du hast dies nicht wählen oder, dass“

Auch habe ich das Kontrollkästchen Setup, so dass, wenn Sie eine überprüfen es unchecks der andere, aber beide können falsch sein.

+0

Versuchen Sie, die letzte Verschachtelung if-Anweisung? – simchona

+1

Hier ist keine Frage. –

+0

und Ihre | (oder) sollte ein & sein (und) –

Antwort

6

Sie überprüfen möchten, dass sie beide falsch sind, und das mit einer logischen UND erfolgt. Der vertikale Balken repräsentiert eine ODER-Bedingung.

if (checkbox1.checked == false && checkbox2.checked == false) 
{ 
    MessageBox.show("You didn't select this or THAT") 
} 

Das sollte tun, was Sie suchen.

+0

Das macht es TYVM! Ich wusste, dass es etwas Einfaches sein würde, ich war mir nicht sicher, wie ich das in Google richtig abfragen sollte, also danke, dass Sie mir viele frustrierende Minuten des Suchens durch irrelevanten Code erspart haben. – xSCM

1

Versuchen

if (checkBox1.checked == true) 
{ 
    MessageBox.Show("this") 
} 
else if (checkBox2.checked == true) 
{ 
    MessageBox.Show("THAT") 
} 
else 
{ 
    MessageBox.show("You didn't select this or THAT") 
} 

oder besser:

if (checkBox1.checked) 
{ 
    MessageBox.Show("this") 
} 
else if (checkBox2.checked) 
{ 
    MessageBox.Show("THAT") 
} 
else 
{ 
    MessageBox.show("You didn't select this or THAT") 
} 
1

Verwenden Sie eine if-else-Anweisung anstelle einer if-Anweisung. Auf diese Weise wird es nach dem Ausführen der ersten Anweisung stoppen.

1
if (checkBox1.checked) 
{ 
    MessageBox.Show("this") 
} 
else if (checkBox2.checked) 
{ 
    MessageBox.Show("THAT") 
} 
else 
{ 
    MessageBox.show("You didn't select this or THAT") 
} 
1

Was

(checkbox1.checked == false & checkbox2.checked == false) 

Die vertikale Linie ist oder während des Ampersand ist und

Verwandte Themen