我如何选择组合框的选定值?

时间:2019-04-04 07:56:00

标签: c#

我有3个组合框。 cb1 cb2 cb3

如果cb1已选择值,但其他人未选择。可以。

如果cb2选择了值,而其他选择则没有。没关系。

如果cb1cb2选择了值,但另一个没有选择。没关系。

如果cb2cb3选择了值,但另一个没有选择。没关系。

如果cb1cb2cb3选择了值,就可以了。

如果cb3已选择值,但其他人未选择。不好

如果cb1cb3选择了值,但另一个没有选择。那就不好了。

如果可以,请执行一些操作,但如果不正确,请显示一个错误消息框。

我该怎么做?我的代码无效。 我的代码:

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
}

1 个答案:

答案 0 :(得分:2)

在第一个else if块中,两次检查cb2。如果将第一个cb2更改为cb1,则得到的条件与最上面的if条件相同。我认为这是有问题的。

无论如何,由于失败块远少于成功块,因此我只会检查失败。在这种情况下,显示一个消息框并中止/返回。否则,请在if条件之外继续执行操作。

两个底部条件可以组合。如果未选择cb2且选择了cb3,则cb1的状态似乎无关紧要。这种结合总是失败的。

因此,根据您问题中提供的信息,我的代码将类似于:

if (cb2.SelectedIndex == -1 && cb3.SelectedIndex > -1)
{
    //messagebox
    return;
}

//do something