如何使我的表单在C#中响应Ctrl-Alt?
我有一个简单的C#表单,它有一个网格和几个按钮 我希望表单在按下Ctrl-Alt时稍微更改其GUI, 并在释放Ctrl-Alt时使GUI恢复到原始状态 我知道如何检查是否按下了Ctrl+Alt,一种方法是通过Control.ModifierKeys 我的问题是: 对于按钮按下,我有响应它的事件处理程序。 对于键盘常规键,我有响应它的事件处理程序。 但是Ctrl-Alt键不是一个常规键——按下时不会引发事件 那我该怎么办 我想到的一种方法是启用一个将运行的计时器,如果按下Ctrl-Alt,则每隔200毫秒检查一次 有比计时器更好的方法吗如何使我的表单在C#中响应Ctrl-Alt?,c#,.net,winforms,user-interface,C#,.net,Winforms,User Interface,我有一个简单的C#表单,它有一个网格和几个按钮 我希望表单在按下Ctrl-Alt时稍微更改其GUI, 并在释放Ctrl-Alt时使GUI恢复到原始状态 我知道如何检查是否按下了Ctrl+Alt,一种方法是通过Control.ModifierKeys 我的问题是: 对于按钮按下,我有响应它的事件处理程序。 对于键盘常规键,我有响应它的事件处理程序。 但是Ctrl-Alt键不是一个常规键——按下时不会引发事件 那我该怎么办 我想到的一种方法是启用一个将运行的计时器,如果按下Ctrl-Alt,则每隔2
谢谢您可能可以重写表单的方法来拾取击键
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Control | Keys.Alt )
{
//Do Stuff here
}
return base.ProcessCmdKey(ref msg,keyData);
}
签入键关闭。但这是个糟糕的主意。用户如何按ctrl+alt+del而不触发您的操作?这些是修改键。除了在全屏游戏中,它们应该只与非修改键结合使用。正如评论中提到的,这会让用户感到沮丧。强制作用于包含
Control
和Alt
的每个组合键?以及可能短路其他有效需求?啊。