2011-04-22 69 views

回答

0

對於exapmle,你可以嘗試KeyDown事件記住文本框的初始狀態,並使用OnTextChanged事件,找出新的狀態,並進行比較。 (看起來here

3

最好的方法是收聽Rich Text Box上的PreviewKeyDown事件。

richTextBox1.PreviewKeyDown += new PreviewKeyDownEventHandler(richTextBox1_PreviewKeyDown); 

private void richTextBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) 
{ 
    if (e.KeyCode == Keys.Back) 
    { 
      //char charToBeDeleted = richTextBox1.Text[richTextBox1.Text.Length - 1]; 
      char charToBeDeleted = richTextBox1.Text[richTextBox1.SelectionStart - 1]; 

    } 
} 

注意:此事件(如名稱狀態)在RTB文本值更改之前觸發。

編輯:漢斯提出了一個很好的觀點,我假設遊標總是在最後,這肯定不會總是如此。我已經使用SelectionStart屬性添加了一個修復程序,這會爲我們提供光標開始處的索引。這個解決方案再一次忽略了用戶選擇文本的多個字符,因爲原始問題的措辭似乎只是爲了去除單個字符。

+0

當光標位於文本中間時,您是否獲得了正確的待刪除字符? – 2011-04-22 07:59:35

相關問題