C# 检测C中的空格或字符#
我的问题是,当我按下backspace键时,我想知道它删除了富文本框中的空格或字符。 它将如何解决 提前谢谢C# 检测C中的空格或字符#,c#,winforms,C#,Winforms,我的问题是,当我按下backspace键时,我想知道它删除了富文本框中的空格或字符。 它将如何解决 提前谢谢 Amit Garg例如,您可以尝试使用KeyDown事件来记住textbox的初始状态,并使用OnTextChanged事件找出新状态并进行比较。 (查看)例如,您可以尝试使用KeyDown事件来记住textbox的初始状态,并使用OnTextChanged事件找出新状态并进行比较。 (查看)最好的方法是在富文本框中收听事件 richTextBox1.PreviewKeyDown +=
Amit Garg例如,您可以尝试使用KeyDown事件来记住textbox的初始状态,并使用OnTextChanged事件找出新状态并进行比较。
(查看)例如,您可以尝试使用KeyDown事件来记住textbox的初始状态,并使用OnTextChanged事件找出新状态并进行比较。
(查看)最好的方法是在富文本框中收听事件
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文本值之前触发
编辑:Hans提出了一个很好的观点,我假设光标总是在末尾,但事实肯定并非总是如此。我使用SelectionStart属性添加了一个修复程序,它将为我们提供光标开始的索引。同样,此解决方案忽略了用户选择多个文本字符,因为原始问题的措辞似乎只是为了删除单个字符。最好的方法是在富文本框中收听事件
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文本值之前触发
编辑:Hans提出了一个很好的观点,我假设光标总是在末尾,但事实肯定并非总是如此。我使用SelectionStart属性添加了一个修复程序,它将为我们提供光标开始的索引。同样,此解决方案忽略了用户选择多个文本字符,由于原始问题的措辞似乎只针对单个字符删除。当光标位于文本中间时,是否得到正确的字符?当光标位于文本中间时,是否得到正确的字符?