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

評判が悪いのでコメントを付けられないので、答えとしてコメントしなければなりません。2つのコンボボックスを作成し、最初のコンボボックスのフィールドが選択されている場合にのみ、2番目のコンボボックスに入力しないでください。したがって、コードで単純なifelseステートメントを実行できます。

于 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 に答える