如何根据字符串检查组合框的索引?

Rya*_*hel 4 c# indexing combobox

我有一个包含3个硬编码字符串值的ComboBox:

A
B
C
Run Code Online (Sandbox Code Playgroud)

如果我试图改变基于当前选择的值SelectedValue,SelectedItem或者SelectedText,他们都没有更改索引到合适的项目.

目前我做的事情如下:

switch (str)
{
    case 'A':
        comboBox.SelectedIndex = 0;
        break;
    case 'B':
        comboBox.SelectedIndex = 1;
        break;
    case 'C':
        comboBox.SelectedIndex = 2;
        break;
}
Run Code Online (Sandbox Code Playgroud)

但正如您所看到的那样,它是一个相当弱的解决方案,如果重新排序,编辑或追加项目,它将会中断.

有更好的方法吗?

Nik*_*vic 10

你可以这样做:

comboBox.SelectedIndex = comboBox.Items.IndexOf("B");
Run Code Online (Sandbox Code Playgroud)

但这也适用于我的电脑:

comboBox.SelectedItem = "B";
Run Code Online (Sandbox Code Playgroud)

在comboBox中硬编码的字符串一定存在问题.检查是否有一些不寻常的字符或白色(空白)字符.