FocusManager.SetFocusedElementメソッドがコンボコントロールに対して正しく動作しない

文書番号 : 33123     文書種別 : 制限事項     登録日 : 2012/06/05     最終更新日 : 2012/06/05
文書を印刷する
対象製品
InputMan for WPF 1.0J
詳細
次のようにWindowのLoadedイベントなどで、FocusManager.SetFocusedElementメソッドによりコンボコントロールにフォーカスをセットしても、画面表示時にコントロールにフォーカスがありません。

[Visual Basic]
Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
  FocusManager.SetFocusedElement(Me, GcComboBox1)
End Sub

[C#]
private void Window_Loaded(object sender, RoutedEventArgs e)
{
  FocusManager.SetFocusedElement(this, gcComboBox1);
}

回避方法
次のようなコードで回避できます。

[Visual Basic]
Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
  Me.Dispatcher.BeginInvoke(New Action(Sub()
                       FocusManager.SetFocusedElement(Me, GcComboBox1)
                     End Sub))
End Sub

[C#]
private void Window_Loaded(object sender, RoutedEventArgs e)
{
  this.Dispatcher.BeginInvoke((Action)delegate
  {
      FocusManager.SetFocusedElement(this, gcComboBox1);
  });
}