我想知道如何获取TextBox中编写的最新字符。它并不意味着最后一个字符串。 例如,我写这个:
这是一个测试。
但我忘记了's',所以我将手指移到'i'上,然后添加's':
这是一个测试。
那么,我怎样才能获得's'?
我想用char或string来获取它,但我不知道该怎么做......
我希望很清楚。
答案 0 :(得分:8)
如果您想获得最后写的字符,请订阅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. */
}
如果你想获得最后写字符的索引,那么这就更复杂了。其中一个解决方案是跟踪TextBox
中的鼠标位置和光标。
答案 1 :(得分:4)
yBee的回答几乎是正确的,除了事件被称为KeyDown
,而不是KeyPress
,至少在Windows Phone 8上。
答案 2 :(得分:0)
使用此代码获取插入文本框中的最后一个字符
private void Textbox1_KeyDown(object sender, KeyEventArgs e)
{
lastchar_inserted = e.KeyValue.ToString(); // global string variable
}
答案 3 :(得分:0)
看看,它可能会有所帮助。 要获取文本的最后一个字符,另一个建议是附加
"\n"
(nameTextbox.Append("\n")
)
然后,使用
int lineCount = nameTextbox.Lines.Count();
最后,使用方法
nameTextbox.GetFirstCharIndexFromLine(lineCount)
。
你可能有(index-1)(或者Whatever,小心并用较小的文本测试它)作为你的最后一个角色的索引。