如何过滤匹配字符串模式的组合框c#

时间:2013-03-20 06:42:56

标签: c#

我的组合框包含来自数据库的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。

如果我在数据库中有数千条记录,我只是说它的过滤数据。

2 个答案:

答案 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));
    }
}