实施集中热键处理/处理

时间:2010-01-07 16:51:00

标签: c# .net hotkeys imessagefilter

我正在开发一个项目,我需要在整个应用程序中实现可自定义的热键。有许多不同的表单和用户控件需要实现不同的热键子集。我想在中央MessageFilter类中实现所有处理和处理。

我希望有一个基类,其中包含所有热键的方法,然后只是覆盖每个表单/控件中所需的子集,但我无法弄清楚如何让所有表单和用户控件共享一个基类。这将允许我做这样的事情来处理热键:

public bool PreFilterMessage(ref Message m)
{
HotKeyAction action = GetActionForKey(keydata);
BaseClass instance = GetBaseClassFromFocusedFormOrControl();
switch (action)
{
case HotKeyAction.Action1: instance.Action1() break;
}
}

我是否以错误的方式思考这个问题?

1 个答案:

答案 0 :(得分:0)

您可以将表单创建为“基类”。也就是说,您可以创建一个名为ShanesForm的表单,其中没有任何内容。将方法调用放在此表单中,然后将该表单设置为所有其他表单的基类。

相关问题