我有3个组合框。 cb1
cb2
cb3
。
如果cb1
已选择值,但其他人未选择。可以。
如果cb2
选择了值,而其他选择则没有。没关系。
如果cb1
和cb2
选择了值,但另一个没有选择。没关系。
如果cb2
和cb3
选择了值,但另一个没有选择。没关系。
如果cb1
和cb2
和cb3
选择了值,就可以了。
如果cb3
已选择值,但其他人未选择。不好
如果cb1
和cb3
选择了值,但另一个没有选择。那就不好了。
如果可以,请执行一些操作,但如果不正确,请显示一个错误消息框。
我该怎么做?我的代码无效。 我的代码:
if (cb1.SelectedIndex > -1 && cb2.SelectedIndex == -1 && cb3.SelectedIndex == -1)
{
//do something
}
else if (cb2.SelectedIndex == -1 && cb2.SelectedIndex > -1 && cb3.SelectedIndex == -1)
{
//do something
}
else if (cb1.SelectedIndex > -1 && cb2.SelectedIndex > -1 && cb3.SelectedIndex == -1)
{
//do something
}
else if (cb1.SelectedIndex == -1 && cb2.SelectedIndex > -1 && cb3.SelectedIndex > -1)
{
//do something
}
else if (cb1.SelectedIndex > -1 && cb2.SelectedIndex > -1 && cb3.SelectedIndex > -1)
{
//do something
}
else if (cb1.SelectedIndex == -1 && cb2.SelectedIndex == -1 && cb3.SelectedIndex > -1)
{
//messagebox
}
else if (cb1.SelectedIndex > -1 && cb2.SelectedIndex == -1 && cb3.SelectedIndex > -1)
{
//messagebox
}
答案 0 :(得分:2)
在第一个else if
块中,两次检查cb2。如果将第一个cb2更改为cb1,则得到的条件与最上面的if条件相同。我认为这是有问题的。
无论如何,由于失败块远少于成功块,因此我只会检查失败。在这种情况下,显示一个消息框并中止/返回。否则,请在if条件之外继续执行操作。
两个底部条件可以组合。如果未选择cb2且选择了cb3,则cb1的状态似乎无关紧要。这种结合总是失败的。
因此,根据您问题中提供的信息,我的代码将类似于:
if (cb2.SelectedIndex == -1 && cb3.SelectedIndex > -1)
{
//messagebox
return;
}
//do something