2010-01-07 31 views
0

我正在开发一个项目,我需要在整个应用程序中实现可自定义的热键。有许多不同的窗体和用户控件需要实现不同的热键子集。我想在一个中心的MessageFilter类中实现所有的处理和处理。我想拥有一个基类,它拥有所有热键的方法,然后在每个窗体/控件中重写需要的子集的子集,但我无法弄清楚如何让所有的窗体和用户控件共享一个基类。这将允许我做这样的事情来处理热键:实现集中式热键处理/处理

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

我在想关于这个错误的方式?

回答

0

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