获取ComboBox的当前索引?

Tah*_*dda 4 .net c# indexing combobox winforms

假设我有一个包含这些值的ComboBox:

Black
Red
Blue
Run Code Online (Sandbox Code Playgroud)

Red目前已经选择了.如果用户然后点击退格并点击进入我正在捕捉KeyDownComboBox 的事件.

在这种情况下,我想从ComboBox中的项目列表中删除Red.

但是,由于ComboBox的文本在KeyDown调用时是空白的,因此SelectedIndex为-1.

目前我的解决方法如下:

private void myComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    currentMyComboBoxIndex = myComboBox.FindStringExact(myComboBox.Text);
}
Run Code Online (Sandbox Code Playgroud)

哪个有效..但我只是想知道是否有更好的方法.看起来这种方式可能会以某种方式破坏,看起来有点混乱.是否无法获取ComboBox的当前索引而无需使用成员变量跟踪它并在索引更改时更新它?

谢谢.

Cha*_*thJ 8

你做的方式很好.您必须将所选索引保留在内存中,因为它在删除文本时返回-1作为SelectedIndex.您也可以采用这种方式获取索引.

private void myComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    currentMyComboBoxIndex = myComboBox.SelectedIndex;
}
Run Code Online (Sandbox Code Playgroud)