Silverlight 如何知道在textbox的TextChanged事件中是否按了backspace或delete
我使用textbox的TextChanged事件 例如,我在文本框中有文本: “a b”-a、b之间的2个空格 我走在2个空间的中间,击中后空格。我无法通过将新文本与按下的旧文本进行比较进行检查(如果按了backspace或delete,则新文本为 相同的“a b”-字母之间有1个空格Silverlight 如何知道在textbox的TextChanged事件中是否按了backspace或delete,silverlight,textbox,Silverlight,Textbox,我使用textbox的TextChanged事件 例如,我在文本框中有文本: “a b”-a、b之间的2个空格 我走在2个空间的中间,击中后空格。我无法通过将新文本与按下的旧文本进行比较进行检查(如果按了backspace或delete,则新文本为 相同的“a b”-字母之间有1个空格 如何检查按下了哪个键?你为什么关心?如果你正在处理TextChanged事件,你不应该关心文本发生了什么变化,而应该关心它发生了什么变化 如果您需要关心具体更改的内容,则需要处理较低级别的事件,如: 你为什么关心
如何检查按下了哪个键?你为什么关心?如果你正在处理
TextChanged
事件,你不应该关心文本发生了什么变化,而应该关心它发生了什么变化
如果您需要关心具体更改的内容,则需要处理较低级别的事件,如:
你为什么关心?如果你正在处理
TextChanged
事件,你不应该关心文本被更改了什么,而应该关心它被更改的事实
如果您需要关心具体更改的内容,则需要处理较低级别的事件,如:
我知道这是个老问题,但也许有人会觉得这很有帮助 我使用了一个整数,它计算当前字符的长度。它随事件而更新。 每次触发事件时,我都会检查计数器的长度是否超过文本的当前长度。如果是,我们知道,删除了某些内容
private int counter = 0;
private void TextChangedEvent(object sender, TextChangedEventArgs e){
if(counter > textbox.text){
counter = text.Length;
//deleted
}
else{
counter = text.Length;
//added}
我知道这是个老问题,但也许有人会觉得这很有帮助 我使用了一个整数,它计算当前字符的长度。它随事件而更新。 每次触发事件时,我都会检查计数器的长度是否超过文本的当前长度。如果是,我们知道,删除了某些内容
private int counter = 0;
private void TextChangedEvent(object sender, TextChangedEventArgs e){
if(counter > textbox.text){
counter = text.Length;
//deleted
}
else{
counter = text.Length;
//added}
你为什么不使用按键事件呢?@Alireza:因为你无法确定是从
KeyPress
事件中按了Delete键还是Backspace键。你需要使用KeyDown
KeyPress
键只由字符键引发。你为什么不使用按键事件呢?@Alireza:因为你无法确定是删除还是Backspace键已从KeyPress
事件中按下。您需要使用KeyDown
。KeyPress
仅由字符键启动。