我有一个类似TextBox的自定义控件。我正试图用这个来处理退格:
private void PerformBackspace() {
System.Diagnostics.Debug.WriteLine("Got a backspace. Text is currently \"{0}\".", (object)this.Text);
string newText = this.Text.Substring(0, this.Text.Length - 1);
System.Diagnostics.Debug.WriteLine("Changing text to \"{0}\".", (object)newText);
this.Text = newText;
System.Diagnostics.Debug.WriteLine("Text is now \"{0}\".", (object)this.Text);
}
在OnKeyDown
我调用此方法,它可以工作,但只适用于一个字符。连续两次退格不起作用,由于某种原因,您必须在退格之间键入至少一个字符。现在是Substring
只是不工作???这是我退格两次时得到的输出:
有一个退格。文字目前是“我的 文本框。“。
将文本更改为”我的 文本框“。
文本现在是”我的文本框“ 有一个退格。文字目前是“我的 文本框“。
将文本更改为”我的 文本框“。
文本现在是”我的文本框“。
这很可能是我见过的最奇怪的问题。
答案 0 :(得分:1)
尝试从OnKeyUp()事件中调用它。
答案 1 :(得分:0)
事实证明,按下退格键后,'\b'
字符会附加到我的文字中。