我有一个绑定到DataTable的组合框。在combox中进行选择后,我更新数据源(即过滤DataTable)并将其重新绑定到combox。
除自动完成功能外,一切正常。
例如, 假设数据源的值为 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 =“”。什么都行不通。
感谢任何帮助。