Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检测C中的空格或字符#_C#_Winforms - Fatal编程技术网

C# 检测C中的空格或字符#

C# 检测C中的空格或字符#,c#,winforms,C#,Winforms,我的问题是,当我按下backspace键时,我想知道它删除了富文本框中的空格或字符。 它将如何解决 提前谢谢 Amit Garg例如,您可以尝试使用KeyDown事件来记住textbox的初始状态,并使用OnTextChanged事件找出新状态并进行比较。 (查看)例如,您可以尝试使用KeyDown事件来记住textbox的初始状态,并使用OnTextChanged事件找出新状态并进行比较。 (查看)最好的方法是在富文本框中收听事件 richTextBox1.PreviewKeyDown +=

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

提前谢谢


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属性添加了一个修复程序,它将为我们提供光标开始的索引。同样,此解决方案忽略了用户选择多个文本字符,由于原始问题的措辞似乎只针对单个字符删除。

当光标位于文本中间时,是否得到正确的字符?当光标位于文本中间时,是否得到正确的字符?