首页 > 解决方案 > 设置 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 的值保持显示。

标签: .netvb.netcombobox

解决方案


设置SelectedIndex-1将清除 ComboBox 使其没有选定项目。如果effectiveMonth是 always 0,那么您将获得您所描述的行为。我不能完全确定,因为没有显示足够的代码。


推荐阅读