2012-02-24 21 views
0

私はWPFとC#を使用しています。 私はボタンで作られたOnScreenKeyboardを持つアプリケーションを持っています。 私はOnScreenKeyboardそれがこれを行うのタブボタンを押します。WPFとC#ComboBox次のフォーカス

if (IsEnterEnabled){ 
    CurrentTextBox.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next)); 
} 

CurrentTextBoxコントロールです。

テキストボックスにフォーカスを当てると、次のフォーカスがコンボボックスであってもうまく動作し、次のフォーカスに移動しますが、現在のフォーカスが編集可能なコンボボックスにある場合、次のフォーカス要素に移動しません。

コンボボックスを編集できない場合、それは機能します。

+0

コントロールにフォーカスがあるかどうかを確認しましたか?タブで選択/選択できますか? – tcables

+0

はい、実際のキーボードのタブキーを押すとうまくいきます。 – davibq

答えて

0

ComboBoxには現在フォーカスを持っているTextBoxがあるため、次に移動するようにComboBoxに指示するのはTextBoxにのみ移動します。代わりに、内部のTextBoxを取得し、その上で次の移動:

 var s1 = FocusManager.GetFocusedElement(this); 
     if (s1 is FrameworkElement) 
     { 
      ((FrameworkElement)s1).MoveFocus(new TraversalRequest(FocusNavigationDirection.Next)); 
     } 
0

あなたが好きな場合は、私のEnterKeyTraversal attached propertyコードを使用することができます。それをWPFウィンドウのトップレベルコンテナに追加すると、内部のすべてがタブとして入力として扱われます:

関連する問題