1

我的组合框包含来自数据库的 DBaaaaa、DBbbbbb、Dbccccc、FBaaaaa、FBcccc 等值。我希望当用户从组合框中选择一个值时,它应该匹配前缀(“DB”,“FB”)和所选值的长度。它必须根据匹配模式过滤组合框。

Regex filter = new Regex("^[a-zA-z][a-zA-z][a-zA-Z0-9]*");

例如,如果用户选择了 DBaaaaa。现在组合框应该包含从“DB”开始的所有值及其匹配长度。哪里像 DBbbbbb,Dbccccc。

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

4

2 回答 2

1

由于声誉低,我无法添加评论,所以我必须评论作为答案。为什么不创建两个组合框,只有在选择第一个字段时才填写第二个组合框。因此,您可以在代码中执行一个简单的 if else 语句。

于 2013-03-20T07:31:28.583 回答
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));
    }
}
于 2013-03-20T07:53:20.103 回答