我需要在用户在RichTextBox控件中按CTRL-Z
(同时按CTRL
和Z
)时捕获。
我关掉了ShortCutsEnabled
财产。我已经尝试过将KeyCode
和KeyData
与KeyDown
和KeyPress
事件一起使用的所有组合。
我可以捕获CTRL
或Z
,但不能同时捕获。即使快捷方式被禁用,RichTextBox
是否可以在我看到它之前捕获此按键?
有没有人有解决方案适用于此?
答案 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
事件中的Modifiers
和KeyDown
:
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");
}
}
试试这个。