我希望在C#中获取Windows面板控件的按键事件,有人可以帮帮我吗...
您应该处理 Panel.KeyPress 事件。
示例
public void MyKeyPressEventHandler(Object sender, KeyPressEventArgs e)
{
... do something when key is pressed.
}
...
(MyPanel as Control).KeyPress += new KeyPressEventHandler(MyKeyPressEventHandler);
Panel.KeyPress
是不推荐的。然而,你需要看一下所提出的问题,因为它是一个直截了当的问题,给出了一个直截了当的答案,但没有提供任何背景信息。 - JamesForm.KeyPreview
设置为 true
并添加一个处理器到 Form.KeyPress
。现在你就可以在表单中处理按下的键了。“面板”对象无法正确接收“KeyPress”事件。
我已经创建了 Panel
重载:
public class PersoPanel : Panel
并使用了被覆盖的方法ProcessCmdKey
:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
MessageBox.Show("You press " + keyData.ToString());
// dO operations here...
return base.ProcessCmdKey(ref msg, keyData);
}
面板 + 按键 - C# 讨论版 - CodeProject
http://www.codeproject.com/Messages/704386/Panel-plus-Keypress.aspx