「強化された」コンボ ボックスの望ましい機能は、クイック検索メソッドです。コンボボックスの各項目には ToString() メソッドがあり、ドロップダウン リストに表示できます。ドロップダウン リストの項目をクリックすると、コンボボックスのオブザーバーに選択が通知されます。
また、コンボボックスに入力されたテキストが変更されるたびに、それまでに入力されたテキストを含むドロップダウン リスト内のすべての項目で構成される「候補」のリストが生成されます。Enter キーを押すと、そのリストの最初の候補に移動し、Enter キーを繰り返し押すと、リストが循環します。
私は ComboBox から派生してこの機能を実装しました - 機能的にはまだコンボボックスが残っているので、これは理にかなっていると思いました.この「QuickFind」機能が追加されているだけです. ただし、候補リストを作成して循環させるロジックは単純ではありますが、完全に自明というわけではないため、いくつかのテストが必要です。
ただし、ここに示すように、ComboBox を作成して、追加した追加のルーチンを実行するだけでは、ComboBox をテストするのはそれほど簡単ではないようです。同じように動作するには、フォーム上に存在する必要があります。アプリケーションで。これは、単純なコンボ ボックスへの単純な追加をテストするには、かなりの労力を要します。
ただし、候補を循環するコードは私のアプリケーションに固有のものではありません。任意の数のコンテキストで使用できる一般的なコントロールを作成しました。唯一の要件は、コンボボックス内のオブジェクトに ToString() メソッドがあることです。とにかく、通常のコンボボックスに入るオブジェクトに課されるのと同じ制限であり、C# .NET によって保証されています。
では、テスト容易性を念頭に置いて、強化された機能をどこに配置しますか?