オンスクリーン キーボードの TextBox 動作を作成しようとしています。テキスト ボックス内のテキストを更新できますが、更新が完了したら、テキスト ボックスにフォーカスしてキャレットをテキストの最後に移動することはできません。
TextBox.Focus() と TextBox.Select() を両方の順序で使用してみましたが、うまくいきませんでした。
御時間ありがとうございます
オンスクリーン キーボードの TextBox 動作を作成しようとしています。テキスト ボックス内のテキストを更新できますが、更新が完了したら、テキスト ボックスにフォーカスしてキャレットをテキストの最後に移動することはできません。
TextBox.Focus() と TextBox.Select() を両方の順序で使用してみましたが、うまくいきませんでした。
御時間ありがとうございます
同様の状況が発生し、ここに示すように、「TextChanged」ハンドラーをテキストボックスにアタッチしました。
<TextBox Name="tbTextEntry" Width="200" HorizontalAlignment="Center" Background="Plum" Text="{Binding Entered_text,Mode=TwoWay}" TextChanged="OnTextChanged_Handler"></TextBox>
そして、このようにイベントを処理しました(上記のコメントのJeff Beckに感謝します):
protected void OnTextChanged_Handler(object sender, RoutedEventArgs e)
{
TextBox my_text_box = (TextBox)sender;
my_text_box.SelectionStart = my_text_box.Text.Length;
Debug.WriteLine("OnTextChanged_Handler called !");
return;
}
これは、人が画面上のキーボードを離れて実際のキーボードを使い始める場合には非効率的です。カーソルが実際のキーボードで正常に機能するため、新しい文字ごとにこのハンドラーが不必要に呼び出されるためです。より効率的なソリューションを歓迎します!
お役に立てば幸いです。ありがとう。