1

テキストボックスが 1 つあり、そのテキストボックスに仮想キーボードから値を送信する必要があります。私はのように送信されます

txtNumber.Text = txtNumber.Text.Insert(txtNumber.CaretIndex, ((Button)sender).Content.ToString());
txtNumber.CaretIndex += txtNumber.Text.Length;
txtNumber.focus();

問題は、ユーザーが何らかの文字を入力した後に強制的にテキストの間にカーソルを置き、キーを押すと、最初に値が正しく挿入され、その後カーソルがそこにある必要があることを意味します。

上記のこのロジックにより、最終的にカーソル位置に留まります。

これを達成する方法は?

4

4 に答える 4

0

これを行うにはいくつかの方法があります。
ユーザーがチェックボックスをクリックするなどして仮想キーボードを使用したい場合
、テキストボックスを読み取り専用にすることができます。または、テキストボックスの場合に
設定できます。それ以外の場合は、単にメソッドhttp://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.appendtext.aspx を呼び出すことができますCaretIndexlost focus
AppendText("nextsetofchars")

SelectionStartロスト フォーカス イベントの文字列の長さに を 設定することもできます。http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.selectionstart.aspx

于 2013-04-08T07:55:03.587 に答える
0

質問を理解している場合は、変更中の文字列をバッファ文字列変数に保持し、仮想 kb 入力に応じて変更を加えます。これが完了したら、TextBox の値を txtNumber.Text = bufferedString; で更新します。

于 2013-04-08T07:44:04.070 に答える