我的组合框包含来自数据库的DBaaaaa,DBbbbbb,Dbccccc,FBaaaaa,FBcccc等值。我想当用户从组合框中选择一个值时,它应该与前缀(“DB”,“FB”)和所选值的长度相匹配。它必须根据匹配模式过滤组合框。
Regex filter = new Regex("^[a-zA-z][a-zA-z][a-zA-Z0-9]*");
例如,如果用户选择了DBaaaaa。 now组合框应包含从“DB”开始的所有值及其匹配长度。像DBbbbbb,Dbccccc。
如果我在数据库中有数千条记录,我只是说它的过滤数据。答案 0 :(得分:1)
由于声誉低,我无法添加评论,因此我必须作为答案发表评论。为什么不创建两个组合框,只有在选择了第一个组合框时才填写第二个组合框。那么你可以在你的代码中做一个简单的if else语句。
答案 1 :(得分:0)
假设您拥有完整的字符串列表,您可以在ComboBox
SelectedIndexChanged/SelectedValueChanged
事件中处理此问题
类似的东西:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var comboBox = sender as ComboBox;
if (comboBox.SelectedItem != null)
{
string selectedItem = comboBox.SelectedItem.ToString();
comboBox.Items = myDataSource.Where(x => x.StartsWith(selectedItem.Substring(0, 2))
&& x.Length.Equals(selectedItem.Length));
}
}