我有一个用数据库表中的项目填充的组合框。 当我更改文本时,我使用数据库表中的项重新填充组合框。
但是当我输入文字并打开带有建议的列表时,没有选择列表中的项目。 我想要一个项目被选中,所以当你按回车它成为所选项目时。
这是一个winforms应用程序。
感谢。
cbxNaam.Items.Clear();
string query = "SELECT bedr_naam FROM tblbedrijf WHERE bedr_naam LIKE '%" + cbxNaam.Text + "%'";
string[] bedrijfsnamen = Functions.DataTableToArray(Global.db.Select(query));
cbxNaam.Items.AddRange(bedrijfsnamen);
cbxNaam.Select(cbxNaam.Text.Length + 1, 0);
答案 0 :(得分:1)
您需要在列表中选择一个项目 - 看起来您正在尝试选择项目中的某些文字。
将您的其他评论中的一些信息拼凑在一起,看起来您想要在下拉列表中的文本上进行通配符匹配,为此,您需要修改文本更改事件/方法的处理程序行为,要么从组合框派生并覆盖它,要么在你的实例上添加一个事件监听器。
然后,您可以搜索数组中的数据 - 例如
private void cbxNaam_TextChanged(object sender, EventArgs e)
{
var matchingStrings = bedrijfsnamen.Where(s => s.Contains(cbxNaam.Text));
cbxNaam.SelectedItem = matchingStrings[0];
}
您需要对多个匹配项目等一点小心。
答案 1 :(得分:0)
如果您使用 WINFORMS ,
您必须将AutoCompleteMode设置为AutoCompleteMode.Append
并将AutoCompleteSource设置为AutoCompleteSource.ListItems
答案 2 :(得分:0)
我不知道我是否理解你,如果没有,对不起!这是我的答案:
如果您希望在编写comboBox时填充comboBox,则需要设置其属性:
AutoCompleteMode为追加 和 AutoCompleteSource为 ListItems
输入您的项目将被选中。
希望我能帮到你吗?摇滚!!!: - )