2009-08-14 181 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"); 
}