如何知道文本框的TextChanged事件中是否按下了退格键或删除键

时间:2011-05-22 07:17:49

标签: silverlight textbox

我使用文本框的TextChanged事件。

例如我在文本框中有文字: “a b” - a,b之间有2个空格 我走到2个空间的中间,然后击中退格。我无法通过比较新文本与旧的哪个键被按下来检查(如果按下了退格键或删除键,则新文本是 字母之间相同的“a b”-1空格。

如何查看按下了哪个键?

2 个答案:

答案 0 :(得分:3)

为什么要关心?如果您正在处理TextChanged事件,那么您不应该关心关于文本被更改的内容,只是它 的事实。

如果您需要关心具体改变了什么,您需要处理较低级别的事件,例如KeyDown

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Back || e.Key = Key.Delete)
    {
        // The user deleted a character
    }
}

答案 1 :(得分:1)

我知道这是一个老问题,但也许有人会觉得这很有帮助。

我使用了一个整数,它计算当前字符的长度。它随事件而更新。 每次触发事件时,我都会检查计数器的长度是否长于文本的当前长度。如果是,我们知道,有些东西被删除了。

    private int counter = 0;

private void TextChangedEvent(object sender, TextChangedEventArgs e){

if(counter > textbox.text){
counter = text.Length;
//deleted
}

else{
counter = text.Length;
//added}