.net - 设置 SelectedIndex 后组合框值被清除
问题描述
我正在尝试设置我的 ComboBox 的 SelectedIndex 值,当我这样做时,ComboBox 中的文本会被清除。例如:我有一个 DataGridView,当用户单击一行时,它会填充 ComboBox。如果用户单击具有相同值的另一行,它将清除 ComboBox 的值,但仍保留选定的索引。但是,如果用户单击具有不同值的行,它会正确更改。
我尝试更改填充组合框的方式,从设置它的数据源到循环其数据并手动设置每个值。我也尝试设置 ComboBox1.SelectedIndex = 2 并且它仍然清除文本。
下面是我在 DataGridView1 的 Click 事件中设置 SelectedIndex 的方法:
effectiveMonth = DateTime.ParseExact(DataGridView1.SelectedRows(0).Cells.Item("Effective_Month").Value, "MMMM", CultureInfo.InvariantCulture).Month
ComboBox1.SelectedIndex = effectiveMonth - 1
这是我填充 ComboBox 的方式:
Dim months as New Dictionary(Of Integer, String) FROM {{1, "1-January"}, {2, "February"},
{3, "March"}}
ComboBox1.DataSource = months.ToList
ComboBox1.DisplayMember = "Value"
ComboBox1.ValueMemeber = "Key"
我期望发生的是当用户单击具有相同值的另一行时 ComboBox1 的值保持显示。
解决方案
设置SelectedIndex
为-1
将清除 ComboBox 使其没有选定项目。如果effectiveMonth
是 always 0
,那么您将获得您所描述的行为。我不能完全确定,因为没有显示足够的代码。
推荐阅读
- visual-studio - 添加表适配器时未将对象引用设置为对象的实例
- c# - 使用 Linq 从列表中删除两个重复项(如果一个重复项)
- python - 与模块“re”匹配模式的类型错误
- vba - Excel存储过程调用中的行重复
- angular - Type '{Property: string, Property2: string} 不可分配给 Observable 类型
- c# - 如何在 ASP.NET Core 中使用 HttpContext.Current
- java - 添加新的组合框 Java
- python - 如何通过python click框架定义这个命令?
- state-machine - Spring 状态机 UML 保留在内存中
- c++ - 使用 multiset_of 提升 bimap 查找