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

时间:2014-04-16 04:39:26

标签: c# winforms richtextbox

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

我关掉了ShortCutsEnabled财产。我已经尝试过将KeyCodeKeyDataKeyDownKeyPress事件一起使用的所有组合。

我可以捕获CTRLZ,但不能同时捕获。即使快捷方式被禁用,RichTextBox是否可以在我看到它之前捕获此按键?

有没有人有解决方案适用于此?

3 个答案:

答案 0 :(得分:4)

你可以简单地使用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!");
         }
    }

答案 1 :(得分:1)

检查KeyCode事件中的ModifiersKeyDown

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

答案 2 :(得分:0)

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

试试这个。