我的问题是关于c#windows form。
我在表单中有三个复选框:
checkbox1,checkbox2,checkbox3
和一个按钮。
按钮编程是:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
}
private void checkBox3_CheckedChanged(object sender, EventArgs e)
{
}
private void button6_Click(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
}
else
if (checkBox2.Checked)
{
}
else
if (checkBox3.Checked)
{
}
else
if (checkBox1.Checked && checkBox2.Checked)
{
}
else
if (checkBox1.Checked && checkBox3.Checked)
{
}
else
if (checkBox2.Checked && checkBox3.Checked)
{
}
else
if (checkBox1.Checked && checkBox2.Checked && checkBox3.Checked)
{
}
else
{
MessageBox.Show("Please Select an Checkbox to Perform");
}
MessageBox.Show("All Done!");
}
我的问题是,当我检查所有三个复选框时,它会遍历按钮内的整个if语句, 它处理按钮内的所有功能, 我希望当我检查所有复选框时,它应该只执行此语句,而其他选项应该检查。
//If(checkbox1.checked && Checkbox2.checked && checkbox3.Checked) {}
等等
答案 0 :(得分:0)
两个直接选项
if
语句的顺序,使它们按您希望检查的顺序排列。if
语句中所有复选框的状态;也就是说,不要只测试一些是否被检查并假设其余部分未经检查 - 也可以测试未选中的复选框。要明确!答案 1 :(得分:0)
一切都取决于您的代码的主要逻辑。这是一个解决您问题的简单方法。首先检查所有这些,然后只检查它们的组,然后单独检查。
private void button6_Click(object sender, EventArgs e)
{
if (checkBox1.Checked && checkBox2.Checked && checkBox3.Checked)//checking all of them first
{
}
else if (checkBox1.Checked && checkBox2.Checked)//checking only pairs
{
}
else if (checkBox1.Checked && checkBox3.Checked)//checking only pairs
{
}
else if (checkBox2.Checked && checkBox3.Checked)//checking only pairs
{
}
else//check them here individually
{
if (checkBox1.Checked)
{
}
else if (checkBox2.Checked)
{
}
else if (checkBox3.Checked)
{
}
else//none of them are checked
{
}
}
}