我的问题是,当我按退格键时,我想知道它删除了富文本框中的空格或字符。 它将如何解决。
提前致谢。
Amit Garg
答案 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)