【问题标题】:Combobox select item in dropdown list C#组合框选择下拉列表中的项目C#
【发布时间】:2012-08-23 20:41:15
【问题描述】:

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

但是当我输入文本并打开带有建议的列表时,未选择列表中的任何项目。 我想要一个项目被选中,所以当你按下回车键时,它就会成为选中的项目。

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

【问题讨论】:

标签: c# winforms combobox


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 这将选择组合框项目,我希望它在下拉列表的下拉列表中选择一个项目
  • 查看上面文字的更新 - 我认为这更符合您的要求
【解决方案2】:

如果您使用的是WINFORMS

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

请查看此答案ComboBox AutoComplete Custom Capabilities

【讨论】:

  • 但是当我使用它时,它只会从字符串的开头自动完成。因此,当我输入位于字符串中间的名称的部分字符串时,它不起作用
  • 对不起,windows 组合框 AutoComplete match with prefix only... 所以你必须编写你的自定义控件。
【解决方案3】:

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

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

AutoCompleteMode 到 追加 和 AutoCompleteSource 到 ListItems

在 Enter 您的项目将被选中。

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

【讨论】:

    猜你喜欢
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多