我需要在RichTextBox控件中捕获用户按下CTRL-Z
(同时按下CTRL
和Z
)的操作。
我已经关闭了ShortCutsEnabled
属性。我尝试使用KeyDown
和KeyPress
事件以及KeyCode
和KeyData
的各种组合,但只能捕获CTRL
或Z
其中之一,而不能同时捕获两个键。即使禁用了快捷方式,RichTextBox
是否仍然会在我看到它之前捕获这个按键?
有没有人有解决这个问题的方法?
我需要在RichTextBox控件中捕获用户按下CTRL-Z
(同时按下CTRL
和Z
)的操作。
我已经关闭了ShortCutsEnabled
属性。我尝试使用KeyDown
和KeyPress
事件以及KeyCode
和KeyData
的各种组合,但只能捕获CTRL
或Z
其中之一,而不能同时捕获两个键。即使禁用了快捷方式,RichTextBox
是否仍然会在我看到它之前捕获这个按键?
有没有人有解决这个问题的方法?
你可以简单地使用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
事件中检查 KeyCode
和 Modifiers
:
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");
}
}
试一下这个。