c#组合框将项目添加为用户类型文本

本文关键字:用户 类型 文本 添加 项目 组合 | 更新日期: 2023-09-27 17:57:33

需要正确的解决方案:

  1. 用户在组合框中键入
  2. 每打一封信,都会从互联网上返回一份匹配姓名的列表
  3. 组合框下拉列表中已填充项目,组合框中的文本不受影响

我的代码:

    private void InitializeComboBoxSearchSymbol()
    {
        comboBoxSearchName.ValueMember = "first_name";
        comboBoxSearchName.DisplayMember = "first_name";
        comboBoxSearchName.AutoCompleteMode = AutoCompleteMode.None;
        comboBoxSearchName.SelectedIndexChanged += comboBoxSearchName_SelectedIndexChanged;
        comboBoxSearchName.KeyDown += SearchNameTextChanged;
    }

    private void comboBoxSearchName_SelectedIndexChanged(object sender, EventArgs e)
    {
    }
    private void SearchNameTextChanged(object sender, KeyEventArgs e)
    {
        YahooData yd = new YahooData();
        List<Name> listNames = yd.YahooNameLookup(comboBoxSearchName.Text);
        comboBoxSearchName.Items.Clear();
        comboBoxSearchName.Items.AddRange(listNames.ToArray());
    }

上面的代码可以工作,但列表不会被下拉,文本光标会变得奇怪,有时还会抛出错误。

c#组合框将项目添加为用户类型文本

以编程方式打开Win Forms组合框:

comboBoxSearchName.DroppedDown = true;