Внедрение централизованной обработки / обработки горячих клавиш - PullRequest
0 голосов
/ 07 января 2010

Я работаю над проектом, в котором мне нужно реализовать настраиваемые горячие клавиши для всего приложения. Существует ряд различных форм и пользовательских элементов управления, которые должны реализовывать различные поднаборы горячих клавиш. Я хотел бы реализовать всю обработку и обработку в центральном классе MessageFilter.

Я хочу иметь базовый класс, который имеет методы для всех горячих клавиш, а затем просто переопределить подмножество необходимых в каждой форме / элементе управления, но я не могу понять, как сделать так, чтобы все формы и элементы управления пользователя совместно Базовый класс. Это позволило бы мне сделать что-то подобное для обработки горячих клавиш:

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

Думаю ли я об этом неправильно?

1 Ответ

0 голосов
/ 07 января 2010

Вы можете создавать формы как базовый класс, так сказать. То есть вы можете создать форму с именем ShanesForm, но на ней ничего не будет. Поместите вызовы методов в эту форму, а затем установите эту форму в качестве базового класса для всех остальных форм.

...