c#实现模糊搜索功能的combobox控件,数据源来源与 string[] TUH_ID;
时间: 2024-09-23 10:13:08 浏览: 41
在C#中,如果你想要实现ComboBox控件的模糊搜索功能,并且数据源来自于`string[] TUH_ID`数组,你可以这样做:
1. 首先,在窗体加载或初始化时,填充ComboBox控件的数据。假设你的TUH_ID数组已经准备好了。
```csharp
private void Form_Load(object sender, EventArgs e)
{
comboBox.DisplayMember = "Value"; // 显示框显示的内容字段名,通常为字符串本身
comboBox.ValueMember = "Key"; // 值框绑定的内容字段名,通常是索引或其他唯一标识
foreach (var id in TUH_ID)
{
comboBox.Items.Add(new { Key = id, Value = id }); // 将ID添加到列表中,同时设置键值对
}
}
```
2. 当用户开始输入并触发搜索时,可以监听`TextChanged`事件,然后过滤匹配项。这里可以创建一个简单的模糊匹配函数:
```csharp
private void comboBox_TextChanged(object sender, EventArgs e)
{
var searchTerm = comboBox.Text.Trim(); // 获取当前文本
comboBox.DataSource = null; // 清空临时数据源,防止性能问题
if (!string.IsNullOrEmpty(searchTerm))
{
var filteredItems = TUH_ID.Where(id => id.Contains(searchTerm)); // 使用LINQ筛选包含搜索词的ID
comboBox.DataSource = filteredItems.Select(id => new { Key = id, Value = id }).ToArray(); // 更新数据显示源
}
else
{
comboBox.DataSource = TUH_ID; // 如果搜索词为空,则显示所有项
}
}
```
这样,当用户在ComboBox中输入文字时,会动态地从`TUH_ID`数组中筛选出包含关键词的项目供选择。
阅读全文