Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 11789
Последний выпуск: 19.06.2015

Быстрые клавиши

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


Все, понял. Даю задний ход.

Помню, на прошлом проекте тимлид реализовал паттерн MVC, который, в числе прочего, решал подобную задачу. Вроде бы при инициализации форм, вместе с экшнами указывались комбинации, кнопки на рибоне, в меню (все способы вызова экшна, короче). Это немного не та тема, но было достаточно централизованно (связи описывались в одном месте) и вполне декларативно.

367
15 июля 2013 года
CassandraDied
763 / / 24.05.2012
Интересно, каким образом MVC паттерн помог решить эту задачу? Ну, даже отдаляясь от этого шаблона, мне и сейчас ничего не мешает провести некоторую инициализацию в конструкторе формы. Вопрос — что именно инициализировать. Идея с классом, который будет управлять хоткеями мне кажется хорошей, но не правильной.
Кнопки для меню — это отдельная штука, к моей задаче имеет мало отношения. Для менюшек где-то есть уже написанный обработчик хоткеев, мне до него, скорей всего, не добраться. Но вообще спасибо за наводку, покопаю в эту сторону в первую очередь, если никто ничего не посоветует конкретного.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог