如何在RichTextBox中捕获Ctrl-Z击键

本文关键字:Ctrl-Z 击键 RichTextBox | 更新日期: 2023-09-27 17:58:43

我需要捕捉用户在RichTextBox控件中按下CTRL-Z(同时按下CTRLZ)的时间。

我已关闭ShortCutsEnabled属性。我已经尝试了将KeyCodeKeyDataKeyDownKeyPress事件结合使用的所有组合。

我可以捕获CTRLZ,但不能同时捕获。即使快捷方式被禁用,RichTextBox是否在我看到之前就捕捉到了这个击键?

有人能解决这个问题吗?

如何在RichTextBox中捕获Ctrl-Z击键

您可以简单地使用CTRL-Z

 textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown);
void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
         if(e.KeyCode == Keys.Z && (e.Control)) {
             MessageBox.Show("Ctrl + Z Pressed!");
         }
    }

检查KeyDown事件中的KeyCodeModifiers

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Modifiers == Keys.Control && e.KeyCode == Keys.Z)
        MessageBox.Show("Ctrl-Z Pressed");
}
  void richTextBox1_KeyDown(object sender, KeyEventArgs e)
  {
      if ((Control.ModifierKeys & Keys.Control) == Keys.Control && e.KeyCode == Keys.Z)
        {
             MessageBox.Show("Ctrl + Z is Pressed");
        }
  }

试试这个。