下拉列表C#中的组合选择项

时间:2012-08-29 09:14:45

标签: c# winforms combobox

我有一个用数据库表中的项目填充的组合框。  当我更改文本时,我使用数据库表中的项重新填充组合框。

但是当我输入文字并打开带有建议的列表时,没有选择列表中的项目。 我想要一个项目被选中,所以当你按回车它成为所选项目时。

这是一个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);

3 个答案:

答案 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

请检查此回答ComboBox AutoComplete Custom Capabilities

答案 2 :(得分:0)

我不知道我是否理解你,如果没有,对不起!这是我的答案:

如果您希望在编写comboBox时填充comboBox,则需要设置其属性:

AutoCompleteMode为追加 和 AutoCompleteSource为 ListItems

输入您的项目将被选中。

希望我能帮到你吗?摇滚!!!: - )