我使用文本框的TextChanged事件。
例如我在文本框中有文字: “a b” - a,b之间有2个空格 我走到2个空间的中间,然后击中退格。我无法通过比较新文本与旧的哪个键被按下来检查(如果按下了退格键或删除键,则新文本是 字母之间相同的“a b”-1空格。
如何查看按下了哪个键?
答案 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}