11 .net keydown winforms c#-4.0
我有一个WinForms表单(C#/ .Net),它包含PictureBox,MenuStrip,Panel和两个Button控件.
我需要检测整个窗口的箭头键的KeyDown事件; 即,当窗口在前台时,无论哪个子控件具有焦点,我都需要知道何时按下箭头键并在发生时执行某些代码.
我不想为每个控件附加一个事件处理程序.有没有更好的办法?我该怎么做?
编辑:使用KeyPreview,如下面的答案建议,我能够检测其他键.无法检测箭头键.只有当我的表单中的按钮被禁用时,我才能检测到箭头键.否则,他们会来回聚焦,不会发生事件.如何通过表单上的按钮检测箭头键?
Han*_*ant 16
重写ProcessCmdKey()方法以检测箭头键.
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == Keys.Left) {
Console.WriteLine("left");
return true;
}
// etc..
return base.ProcessCmdKey(ref msg, keyData);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7982 次 |
| 最近记录: |