c# - 获取 ComboBox 的当前索引?

标签 c# .net winforms indexing combobox

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

Black
Red
Blue

我目前选择了 Red。如果用户随后按下退格键并按下回车键,我将捕获 ComboBox 的 KeyDown 事件。

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

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

目前我有一个看起来像这样的解决方法:

private void myComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    currentMyComboBoxIndex = myComboBox.FindStringExact(myComboBox.Text);
}

哪个有效..但我只是想知道是否有更好的方法。看起来这种方式可能会以某种方式中断并且看起来有点困惑。有没有办法在不必使用成员变量跟踪它并在索引更改时更新它的情况下获取 ComboBox 的当前索引?

谢谢。

最佳答案

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

private void myComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    currentMyComboBoxIndex = myComboBox.SelectedIndex;
}

关于c# - 获取 ComboBox 的当前索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7341351/

相关文章:

c# - 为什么 GetSqlDecimal 抛出而 GetDecimal 不抛出?

c# - 检查服务器路径是否可用作 C# 中的文件共享

c# - 绘制可滚动 datagridview 时出现问题

c# - 将控件属性(例如颜色)数据绑定(bind)到未显示的字段

winforms - SSRS WinForm 报告查看器操作

c# - SerialPort RS-485 和通信限制

c# - ASP.NET Core 中的 System.Data.Entity.Spatial 替换

c# - 尝试将返回类型指定为 void

c# - 识别模式以从 C# HTML 编码字符串中提取单词

c# - 如何在调试期间在 ASP.NET (C#) 中使用 Console.WriteLine?