2012-02-24 5 views
0

Im WPF 및 C#을 사용합니다. 단추로 만든 OnScreenKeyboard가있는 응용 프로그램이 있습니다. 나는 OnScreenKeyboard의 탭 버튼을 누르면 는이 작업을 수행합니다 :WPF 및 C# ComboBox 다음 포커스

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

CurrentTextBox가 컨트롤입니다.

텍스트 상자에 포커스가 있으면 잘 동작하고 다음 포커스가 comboBox 인 경우에도 다음 포커스로 이동하지만 현재 포커스가 편집 가능한 콤보 상자에 있으면 다음 포커스 요소로 이동하지 않습니다.

콤보 상자를 편집 할 수없는 경우 작동합니다.

+0

해당 컨트롤에 포커스가있을 수 있는지 확인 했습니까? 탭으로 선택할 수 있습니까? – tcables

+0

예, 실제 키보드에서 탭 키를 누르면 정상적으로 작동합니다. – davibq

답변

0

ComboBox에는 현재 포커스가있는 TextBox가 있으므로 ComboBox에 다음으로 이동하도록 말하면 TextBox로만 이동합니다. 대신, 내부 텍스트 상자를받을 수 있도록 옆으로 이동 : 만약 당신이 좋아하면

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

당신은 내 EnterKeyTraversal attached property 코드를 사용할 수 있습니다. 그것을 WPF 윈도우의 최상위 컨테이너에 추가하면 내부의 모든 것이 다음과 같이 탭으로 처리됩니다.