TextBoxで記述された最新のcharを取得する方法を知りたいです。文字列の最後を意味するものではありません。たとえば、私はこれを書きます:
このiaテスト。
しかし、「s」を忘れたので、指を「i」に移動し、「s」を追加します。
これはテストです。
では、どうすれば「s」を取得できますか?
文字または文字列で取得したいのですが、方法がわかりません...
はっきりしているといいのですが。
TextBoxで記述された最新のcharを取得する方法を知りたいです。文字列の最後を意味するものではありません。たとえば、私はこれを書きます:
このiaテスト。
しかし、「s」を忘れたので、指を「i」に移動し、「s」を追加します。
これはテストです。
では、どうすれば「s」を取得できますか?
文字または文字列で取得したいのですが、方法がわかりません...
はっきりしているといいのですが。
最後に書き込まれた文字を取得する場合は、TextBoxをKeyDownイベントにサブスクライブします。
C#:
textBox.KeyDown += textBox_KeyDown;
XAML:
<TextBox x:Name="textBox" KeyDown="textBox_KeyDown" />
それで:
private void textBox_KeyDown(object sender, KeyEventArgs e)
{
/* e.Key contains the keyboard key associated with the event. */
}
最後に書かれた文字のインデックスを取得したい場合、これはより複雑です。解決策の1つは、でマウスの位置とカーソルを追跡することTextBox
です。
yBeeの答えはほぼ正しいですが、少なくともWindows Phone 8では、イベントが呼び出されるKeyDown
のではなく、呼び出される点が異なります。KeyPress
このコードを使用して、テキストボックスに挿入された最後の文字を取得します
private void Textbox1_KeyDown(object sender, KeyEventArgs e)
{
lastchar_inserted = e.KeyValue.ToString(); // global string variable
}
見てください、それは役立つかもしれません。テキストの最後の文字を取得するには、別の提案として、
"\n"
(nameTextbox.Append("\n")
)
その後、
int lineCount = nameTextbox.Lines.Count();
そして最後に、メソッドを使用します
nameTextbox.GetFirstCharIndexFromLine(lineCount)
。
最後の文字のインデックスとして(index-1)(または、何であれ、注意して小さなテキストでテストしてください)がある場合があります。