-1

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

但是当我输入文本并打开带有建议的列表时,没有选择列表中的项目。我希望选择一个项目,因此当您按 Enter 键时,它会成为所选项目。

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

3 回答 3

1

您需要在列表中选择一个项目 - 看起来您正试图在一个项目中选择一些文本。

将其他评论中的一些信息拼凑在一起,看起来您实际上想对下拉列表中的文本进行通配符匹配,为此,您需要修改处理程序的行为以处理文本更改的事件/方法,或者派生自组合框并覆盖它或在您的实例上添加一个事件侦听器。

然后你可以搜索你的数组中的数据——比如

private void cbxNaam_TextChanged(object sender, EventArgs e)
{
     var matchingStrings = bedrijfsnamen.Where(s => s.Contains(cbxNaam.Text));
     cbxNaam.SelectedItem = matchingStrings[0];
}

您需要注意多个匹配项目等。

于 2012-08-29T09:36:18.250 回答
0

如果您使用的是WINFORMS

您必须使用AutoCompleteMode设置为AutoCompleteMode.AppendAutoCompleteSource设置为AutoCompleteSource.ListItems

请检查此答案ComboBox AutoComplete Custom Capabilities

于 2012-08-29T09:33:45.353 回答
0

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

如果您希望在您写入组合框时填充您的组合框,您需要设置其属性:

AutoCompleteMode追加 和 AutoCompleteSource 到ListItems

在 Enter 上,您的项目将被选中。

希望我帮助你?摇滚!!!:-)

于 2012-08-29T09:39:38.060 回答