2014-04-16 20 views
4

當用戶在RichTextBox控件中按下CTRL-Z(同時按CTRLZ)時,我需要捕獲它。如何在RichTextBox中捕獲Ctrl-Z按鍵

我已關閉ShortCutsEnabled屬性。我已經嘗試了所有我能想到的組合,使用KeyCodeKeyData以及KeyDownKeyPress事件。

我可以捕獲任何一個CTRL或一個Z,但從來沒有在一起。即使快捷方式被禁用,在我看到它之前RichTextBox是否捕獲了此擊鍵?

有沒有人有解決方案,爲此工作?

回答

1

檢查KeyCodeModifiersKeyDown事件:

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

謝謝,這個工作也!我還了解到,我需要將ShortCutsEnabled打開。 – user3539628

3

,你可以簡單地使用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!"); 
     } 
    } 
+0

謝謝,它工作!我還了解到,我需要將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"); 
     } 
    } 

嘗試。