2011-04-22 70 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

相关问题