我正在制作一个 Windows 应用程序(WinForms),并希望我的应用程序在用户按下 F5 时调用一个方法 - 无论用户在做什么,这都应该有效,但他们必须使用该程序 - 我不想使用全球挂钩 - 有什么想法吗?
问问题
17417 次
3 回答
18
在主窗体上覆盖窗体的ProcessCmdKey并查找 F5。
protected override bool ProcessCmdKey (ref Message msg, Keys keyData)
{
bool bHandled = false;
// switch case is the easy way, a hash or map would be better,
// but more work to get set up.
switch (keyData)
{
case Keys.F5:
// do whatever
bHandled = true;
break;
}
return bHandled;
}
于 2009-12-26T20:44:22.973 回答
4
查看该Form.KeyPreview
属性,它将允许您在允许单个元素处理它们之前在表单级别捕获所有KeyDown
,KeyUp
和事件。KeyPress
于 2009-12-26T20:39:34.950 回答
3
如果您只有一个可以拥有焦点的表单,您可以KeyPreview
将该表单的属性设置为true
并处理该KeyPress
事件。
该KeyPreview
属性将导致窗体接收所有按键,无论窗体上的哪个控件具有输入焦点。
于 2009-12-26T20:38:23.593 回答