2016-05-08 2 views
0

初期化コンポーネントでKeyboard.Focus()を試しました。 doesnt仕事。すぐにクリックすることなくテキストボックスに入力します。WPF

Imボタンをクリックすると、ユーザーからの入力用の新しいウィンドウが開きます。私は、ユーザーがテキストボックスを最初にクリックしてから入力しなくてもすぐに入力を開始できるようにしたい。

+0

キーボード:ウィンドウのLoaded場合に

.Focus()はそこで動作しません、textBox.Focus()を使用して初期化すると動作します。 AfterButtonコントロールを読み込むと、KeyBoard.Focus()が機能します。 –

答えて

2

は、ウィンドウのLoadedイベントでそれをやってみこれをdonw取得する任意の簡単な方法はあります。そして、私が知る限り、単にMyTextBox.focus()を使用すると、論理的フォーカスとキーボードフォーカスの両方を与える必要があります。

1

簡単にします。

<Window FocusManager.FocusedElement="{Binding ElementName=SomeElement}"> 

    <TextBox x:Name="SomeElement"/> 
    ... 

</Window> 
0

フォーカスの管理は難しいです!細部に行かなくても、それは、正しい順序で物事を得ることについてである私は、過去に強引なアプローチで成功してきた:

Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() => 
     { 
      myTextBox.Focus(); 
      Keyboard.Focus(myTextBox); 
      FocusManager.SetFocusedElement(myWindow, myTextBox); 
     }); 
関連する問題