0

我有一个绑定到 DataTable 的组合框。在组合框中做出选择后,我更新数据源(即过滤数据表)并将其重新绑定到组合框。

除了自动完成功能外,一切正常。

例如,假设数据源的值是12345, 12346, 12347。现在我输入 123,所以自动完成会显示所有 3 个值。我从列表中选择了一个。下面的代码然后更新数据源并重新加载组合框。

cmbType.DataSource = dtRequestTypes.Select("Some_Condition").CopyToDataTable();
cmbType.DisplayMember = "TypeOfReq";
cmbType.ValueMember = "TypeOfReq";
cmbType.Text = "";

假设新数据源具有值abcde、abcef、abceg。现在,如果我只是按向下箭头(不按任何其他按钮),“123”将显示为选定的文本,当我继续按下向下箭头时,它会循环前 3 个值( 12345, 12346, 12347 )。如果我单击下拉箭头,它会显示新值,并且从现在开始自动完成工作正常。

我相信旧值存储在某处的缓存中。无论如何要刷新它。我用过.Refresh().SelectedText="".Text=""。没有任何效果。

任何帮助表示赞赏。

4

0 回答 0