簡體   English   中英

退格只能使用一次?

[英]Backspace only works once?

我有一個自定義的類似 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不工作??? 這是我退格兩次時得到的 output:

有退格鍵。 文本當前是“我的文本框”。
將文本更改為“我的文本框”。
文本現在是“我的文本框”。
有退格鍵。 文本當前是“我的文本框”。
將文本更改為“我的文本框”。
文本現在是“我的文本框”。

這很可能是我見過的最奇怪的問題。

嘗試從 OnKeyUp() 事件中調用它。

事實證明,在按下退格鍵后, '\b'字符被附加到我的文本中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM