如何获取在文本框中编写的最新字符?

时间:2013-02-18 14:59:42

标签: c# textbox windows-phone-7.1 windows-phone-8 windows-phone

我想知道如何获取TextBox中编写的最新字符。它并不意味着最后一个字符串。 例如,我写这个:

  

这是一个测试。

但我忘记了's',所以我将手指移到'i'上,然后添加's':

  

这是一个测试。

那么,我怎样才能获得's'?

我想用char或string来获取它,但我不知道该怎么做......

我希望很清楚。

4 个答案:

答案 0 :(得分:8)

如果您想获得最后写的字符,请订阅TextBoxKeyDown事件:

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,小心并用较小的文本测试它)作为你的最后一个角色的索引。