检测C#中的空格或字符

时间:2011-04-22 06:22:07

标签: c# winforms

我的问题是,当我按退格键时,我想知道它删除了富文本框中的空格或字符。 它将如何解决。

提前致谢。

Amit Garg

2 个答案:

答案 0 :(得分: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属性添加了一个修复程序,它将为我们提供光标启动的索引。再次,这个解决方案忽略了用户选择多个文本字符,因为原始问题的措辞似乎只是为了删除单个字符。

答案 1 :(得分:0)

例如,您可以尝试使用KeyDown事件来记住文本框的初始状态,并使用TextChanged事件找出新的状态并进行比较。 (看here