我有问题在我的下拉框中搜索项目中的字符串。我想缩小成员列表。它们以这种方式格式化(唯一成员ID) - 名字 - 姓氏。
当我将所有设置保持“不变”时,它只允许我在字符串的第一个字符中搜索。
数据源从列表中设置,该列表是从循环遍历文件夹中的所有文件生成的。
我一直在使用以下代码(部分代码):
感谢您抽出时间查看。
当我将所有设置保持“不变”时,它只允许我在字符串的第一个字符中搜索。
数据源从列表中设置,该列表是从循环遍历文件夹中的所有文件生成的。
我一直在使用以下代码(部分代码):
private void searchForShooterComboBox_KeyUp(object sender, KeyEventArgs e)
{
//if(e => KeyCode == Keys::Down || e => KeyCode == Keys::Down)
//string comboBoxValue = searchForShooterComboBox.Text;
//searchForShooterComboBox.DataSource = null;
//searchForShooterComboBox.DataSource = fliterComboBox(searchForShooterComboBox, memberFileNames);
//searchForShooterComboBox.Text = comboBoxValue;
}
private void searchForShooterComboBox_TextChanged(object sender, EventArgs e)
{
searchForShooterComboBox.DataSource = null;
searchForShooterComboBox.DataSource = fliterComboBox(searchForShooterComboBox, memberFileNames);
}
private List<string> fliterComboBox(ComboBox cobx, List<string> stringList)
{
List<string> returnList = new List<string>();
if (cobx.Text != ""){
try
{
foreach (string s in stringList)
{
if (s.Contains(cobx.Text))
{
returnList.Add(s);
}
}
}catch{
}
}
return returnList;
}
我尝试过的一些代码似乎可以很好地过滤列表,但在方法运行后,它会将新列表中似乎是第一个项目填充到“文本字段”中,所以用户将无法继续输入名称。
使用ComboBox.Items.Add()
和ComboBox.Items.Remove()
是否会有任何区别,而不是使用DataSource
?
编辑:comboBox DataSource最初在form_load事件处理程序中设置。以下是关于combobox的代码:
searchForShooterComboBox.DropDownStyle = ComboBoxStyle.DropDown;
searchForShooterComboBox.AutoCompleteMode = AutoCompleteMode.Suggest;
searchForShooterComboBox.AutoCompleteSource = AutoCompleteSource.ListItems
感谢您抽出时间查看。