【发布时间】:2010-12-07 14:17:07
【问题描述】:
【问题讨论】:
标签: c# winforms-interop
【问题讨论】:
标签: c# winforms-interop
您可以为您的应用程序创建一个基本表单并将 keypreview 属性设置为 true 并处理 keydown 事件,这样您的所有表单都将具有相同的键定义。
您也可以使用以下例程为表单注册热键,但在此方法中,您需要在每个表单的加载事件上调用相同的方法。
protected override bool ProcessCmdKey(ref Message message, Keys keys)
{
switch (keys)
{
case Keys.F2 | Keys.Control:
//Process action here.
return false;
}
return false;
}
您也可以使用 user32.dll 中的以下非托管方法,但我当然不建议这样做。
static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint virtualKey);
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
【讨论】: