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

C# 下拉列表C中的组合框选择项,c#,winforms,combobox,C#,Winforms,Combobox,我有一个弹出的组合框,其中包含数据库表中的项。 当我更改文本时,我用数据库表中的项目重新填充组合框 但当我输入文本并打开带有建议的列表时,不会选择de列表中的任何项目。 我希望选择一个项目,这样当您按enter键时,它将成为所选项目 这是一个winforms应用程序 谢谢 cbxNaam.Items.Clear(); string query = "SELECT bedr_naam FROM tblbedrijf WHERE bedr_naam LIKE '%" + cbxNaam.Text

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

但当我输入文本并打开带有建议的列表时,不会选择de列表中的任何项目。 我希望选择一个项目,这样当您按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);
如果您使用的是WINFORMS

您必须使用set to AutoCompleteMode.Append并设置为AutoCompleteSource.ListItems


请检查此答案

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

将其他注释中的一些信息拼凑在一起看起来您实际上希望对下拉列表中的文本进行通配符匹配,为此,您需要修改文本更改事件/方法的处理程序的行为,或者从combobox派生并覆盖它,或者在实例上添加事件侦听器

然后,您可以对数组中的数据进行搜索—类似于

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

您需要对多个匹配项等稍微小心一点。

我不知道我是否理解您的意思,如果不理解,对不起!以下是我的答案:

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

要追加的自动完成模式 和 列表项的自动完成源

输入时,将选择您的项目


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

你能提供一些示例代码吗?为什么不使用自动补全:但是当我使用它时,它只从字符串的开头自动补全。因此,当我输入的名称的部分字符串位于字符串的一半时,它不起作用。对不起,windows组合框自动完成。。。因此,您必须编写自定义控件。这将选择combobox项,我希望它在DropList的下拉列表中选择一项请参见上面的“更新到文本”-我认为这更符合您的需要