2009-08-14 288 views
1

我有2個複選框,我想知道如何管理這些:如果選中了一個,那麼如果另一個選中,那麼執行該操作,如果同時選中了這兩個操作。複選框驗證

此外,如果沒有選中,我點擊按鈕來執行它應該顯示的操作「請檢查其中一個選項或兩者。」

謝謝您的時間

-Summey

回答

8
if (!checkBox1.Checked && !checkBox2.Checked) 
{ 
    MessageBox.Show("Please select at least one!"); 
} 
else if (checkBox1.Checked && !checkBox2.Checked) 
{ 
    MessageBox.Show("You selected the first one!"); 
} 
else if (!checkBox1.Checked && checkBox2.Checked) 
{ 
    MessageBox.Show("You selected the second one!"); 
} 
else //Both are checked 
{ 
    MessageBox.Show("You selected both!"); 
} 
+0

唉唉OK OK OK我有這個權利,但我沒有做!checkbox1.check我錯過了!謝謝 – partialdata 2009-08-14 17:37:12

1

我想你會想是這樣的:

private void button1_Click(object sender, EventArgs e) { 
     if (checkBox1.Checked) { 
      Console.WriteLine("Do checkBox1 thing."); 
     } 
     if (checkBox2.Checked) { 
      Console.WriteLine("Do checkBox2 thing."); 
     } 
     if (!checkBox1.Checked && !checkBox2.Checked) { 
      Console.WriteLine("Do something since neither checkBox1 and checkBox2 are checked."); 
     } 
    } 
+0

是的,那是什麼即時消息後,這應該工作,如果他們都檢查以及。謝謝 – partialdata 2009-08-14 17:38:27

0

在按鈕的事件處理程序,只需驗證其按鈕實際上是檢查,即:

if (myCheckBox1.Checked && myCheckBox2.Checked) 
{ 
    // Do action for both checked. 
} 
4

另外;

if(checkBox1.Checked || checkBox2.Checked) 
{ 
    if(checkBox1.Checked) doCheckBox1Stuff(); 
    if(checkBox2.Checked) doCheckBox2Stuff(); 
}else { 
    MessageBox.Show("Please select at least one option."); 
} 
+0

+1的簡潔 – Skeolan 2009-08-14 17:05:00

0

而不要在按鈕的複選框功能,單擊您可以使用複選框的OnCheckedChanged事件,並設置AutoPostBack設置爲true,則ASP.NET的。然後,您可以自動執行復選框操作並對按鈕單擊事件執行數據驗證。

(的WinForms)

private void checkbox1_CheckedChanged(object sender, EventArgs e) 
{ 
    //Execute method 
} 

(ASP.NET)

<asp:CheckBox ID="checkbox" runat="server" OnCheckedChanged="checkbox_OnCheckedChanged" AutoPostBack="true" /> 

private void checkbox_OnCheckedChanged(object sender, EventArgs e) 
{ 
    //Execute method 
} 

按鈕單擊事件

protected void button_onclick(object sender, EventArgs e) 
{ 
    if (!checkbox1.Checked || !checkbox2.Checked) 
     MessageBox.Show("Error"); 
}