Visual Studio 2010、C#
がComboBox
に設定されており、DropDown
はからのものです。ユーザーは、正しいエントリが得られるまでデータをキー入力します。データがリスト項目の 1 つと一致するまで、コンボボックスの横のボタンは無効になります。AutoComplete
SuggestAppend
AutoCompleteSource
ListItems
ユーザーがタブ キーを押すと、オートコンプリート機能は現在の提案を受け入れます。また、有効になっているタブ シーケンス内の次のコントロールに移動します。もちろん、無効なボタンに移動したいので、エントリを検証したらすぐに有効にする必要があります。
問題は、私が試したイベントのどれも、PreviewKeyDown
処理されてフォーカスを受け取るのに間に合うようにボタンを有効にできないことですLostFocus
。SelectedIndexChanged
常に有効になっているタブ オーダーの次のボタンに移動します。
ボタンを有効のままにして、押すのが早すぎるとエラーが発生するようにする準備ができていますが、そのようにしたくありません。また、これらのコントロールがいつフォーカスを受け取るかを追跡するために特別なモード フラグを設定する必要もありません。検証は普通のことのようですが、私は立ち往生しています。
ユーザーが一致したときに が機能した場合SelectedIndexChanged
、これは簡単です。ボックスがクリアされた場合や、入力された一致が見つかった場合には発生しません。