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

5

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

我已经关闭了ShortCutsEnabled属性。我尝试使用KeyDownKeyPress事件以及KeyCodeKeyData的各种组合,但只能捕获CTRLZ其中之一,而不能同时捕获两个键。即使禁用了快捷方式,RichTextBox是否仍然会在我看到它之前捕获这个按键?

有没有人有解决这个问题的方法?

3个回答

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!");
         }
    }

谢谢,它起作用了!我也学到了我需要保持ShortCutsEnabled打开。 - user3539628

1

KeyDown 事件中检查 KeyCodeModifiers

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

谢谢,这也起作用了!我还学到了我需要保持ShortCutsEnabled打开。 - user3539628

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");
        }
  }

试一下这个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接