首先,你需要在 WinForm 中添加一个 ComboBox 控件,并设置其属性为可编辑(DropDownStyle 设置为 DropDown)。

然后,你可以使用以下步骤实现实时模糊查询和结果的显示:

  1. 在窗体的 Load 事件中,初始化下拉菜单的数据源,可以使用一个字符串数组来模拟数据。
string[] dataSource = { 'Apple', 'Banana', 'Orange', 'Peach', 'Pear', 'Grapes' };
comboBox1.DataSource = dataSource;
  1. 在 ComboBox 的 TextChanged 事件中,实现模糊查询功能。首先,获取输入的文本,然后使用 LINQ 查询来过滤数据源,并将结果绑定到 ComboBox 中。
private void comboBox1_TextChanged(object sender, EventArgs e)
{
    string searchText = comboBox1.Text;
    var filteredData = dataSource.Where(item => item.ToLower().Contains(searchText.ToLower())).ToList();
    comboBox1.DataSource = filteredData;
    comboBox1.DroppedDown = true; // 展开下拉菜单显示结果
    comboBox1.SelectionStart = searchText.Length; // 将光标移动到文本末尾
    comboBox1.SelectionLength = 0; // 清除选择内容
}
  1. 最后,你需要为 ComboBox 的 KeyUp 事件添加一个处理程序,以便在按下回车键时将所选结果显示在 ComboBox 中。
private void comboBox1_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        if (comboBox1.Items.Count > 0)
        {
            comboBox1.Text = comboBox1.Items[0].ToString();
        }
        comboBox1.DroppedDown = false; // 关闭下拉菜单
        comboBox1.SelectionStart = comboBox1.Text.Length; // 将光标移动到文本末尾
        comboBox1.SelectionLength = 0; // 清除选择内容
    }
}

以上代码实现了实时模糊查询和结果显示在下拉菜单中的功能。你可以根据需要进行调整和优化。

C# WinForms ComboBox 实时模糊查询及下拉菜单显示

原文地址: https://www.cveoy.top/t/topic/Rpb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录