私には2つのプロジェクトがあるソリューションがあります。メインプロジェクトと、同様に使用される小さな共有コントロールです。このアプリケーションでは、特定の機能によってこの共有コントロールが新しいウィンドウで開きます。ウィンドウが開いたときに、このコントロールの最初のコンボボックスにフォーカスを設定したいと思います。
私のコードでは、共有コントロールをロードするウィンドウで、_Loadedイベントの最後に、このコンボボックスにフォーカスを設定しました。しかし、コードを実行するときは、タブを押して「キーボード」をボックスにフォーカスさせる必要があります(たとえば、タブを押して、リスト内のアイテムの1つの名前の入力を開始する必要があります)。
ここでブレークポイントを設定し、それをヒットしてから続行すると、実際には本来あるべき方法で設定されます。WPFインスペクターを使用する場合-IsFocusedも設定されます。
他に気づいたこと:
- タブを押して(必要なものを取得するために)タブを戻すと、この不明なコントロールではなく、フォームの最後のコントロールに移動します。これにより、フォーカスが正しく設定されていると思いますが、何らかの理由でキーボードのフォーカスが正しくありません。
- コードでMoveNextを使用しようとすると、実際には、コントロールの外にあるウィンドウ内の次の項目が選択されます。
ここでフォーカスを適切に設定するにはどうすればよいですか?'main'プロジェクトの別のコンボボックスでは、.Focus()を呼び出すだけで正しく機能しました。