Быстрые клавиши
Есть где-то пять действий, которые закреплены за обычными кнопками. Хочу сделать для них шоткаты.
Вопрос: как?
Самый неадекватный способ — вешать на каждый контрол обработчик нажатия клавиши. Создать какой-нибудь класс ShortcatsBinder, который будет хранить хоткей и метод, который нужно вызвать и вот в каждом обработчике контрола вызывать методы этого класса, чтоб он там сам разруливал, какой метод необходимо вызвать. Ну, способ неадекватен только наполовину, идея с классом хорошая.
А больше ничего в голову мне и не пришло. Да и гугл что-то ничего толкового не выдал для .net платформы. Должны же быть готовые решения для этой задачи!
Можно, наверное, через коллекцию контролов на форме всем добавить по событию OnKeyPressed, в цикле. Но, наверное, у этого способа будут какие-то подводные камни. Пока хочется узнать, есть ли готовое нормальное решение и если нет, тогда уже переходить к экспериментам.
Ну и непроверенные идеи тоже приветствуются.
- Я б рассказал, как MVC помог, но я не все помню. Помог в общем :) от transParent, 15 июля 2013 года
- Чем не подходит указать шоткат через редактор свойств? Вроде было такое... Забыл уже за два года :( может и не было... от transParent, 15 июля 2013 года
Допустим, на форме 20 контролов. Что, для каждого в свойствах указывать? А если клавишу поменяются, искать в свойствах каждого контрола? А если контролы добавятся? Отсутствие гибкости мешает.
Цитата: CassandraDied
Допустим, на форме 20 контролов. Что, для каждого в свойствах указывать? А если клавишу поменяются, искать в свойствах каждого контрола? А если контролы добавятся? Отсутствие гибкости мешает.
Все, понял. Даю задний ход.
Помню, на прошлом проекте тимлид реализовал паттерн MVC, который, в числе прочего, решал подобную задачу. Вроде бы при инициализации форм, вместе с экшнами указывались комбинации, кнопки на рибоне, в меню (все способы вызова экшна, короче). Это немного не та тема, но было достаточно централизованно (связи описывались в одном месте) и вполне декларативно.
Кнопки для меню — это отдельная штука, к моей задаче имеет мало отношения. Для менюшек где-то есть уже написанный обработчик хоткеев, мне до него, скорей всего, не добраться. Но вообще спасибо за наводку, покопаю в эту сторону в первую очередь, если никто ничего не посоветует конкретного.