Сделать собственные shortcut keys
Скажите, как можно сделать собственный функционал по назначению горячих клавиш и последующему их использованию. т.е. у меня есть к примеру RichTextbox (в нем я буду писать текст) и есть тот самый функционал для назначения горячих клавиш - например, для выделения текста жирным шрифтом, курсивом и т.д.
Мои действия:
1. на своей форме выбираю из созданного мною функционала - как должно срабатывать выделение жирным шрифтом (например, мне для этого нужно будет поставить галочку в собственном чекбоксе CTRL и в собственном комбобоксе выбрать букву "B"). в результате, текст будет выделяться жирным шрифтом именно по такому сочетанию клавиш.
2. теперь я набираю текст в RichTextbox - и нажимаю сочетание CTRL+В - и у меня текст должен выделиться жирным шрифтом.
!!! Если я хочу заменить данную комбинацию клавиш для выделения жирным шрифтом (CTRL+B), я просто беру и меняю в этом функционале и назначаю другую комбинацию.
у меня есть варианты по решению данной проблемы, но это куча if else ... - и это не целесообразно, поэтому нужно другое решение. еще возникает проблема как это все раздельно сделать, т.е. чтобы для каждой операции (жирно,курсив...) - нужно отвести группу его чекбоксов CTRL , ALT, SHIFT и комбобокс с буквами. - чтобы для каждой операции были отдельные группы чекбоксов с комбобоксами. + еще вопрос, как это все хранить при каждом изменении??!!
p.s. кому не понятно про UI, я скинул скриншот UI который будет использоваться.
Я плохо знаю NET но попробую объянить алгоритм. Надо составить пары комбинация - действие. В качестве комбинации дожна быть сущность однозначно идентифицирующая конкретную комбинацию клавиш, в качестве действия - делегат на выполняемый метод. Далее из указанных пользователем комбинаций составляется массив (можно и хеш-таблицу), а при нажатии клавиши формируется текущая комбинация и ищется в этом массиве. При успешности поиска вызывается соответствующий делегат - выполняется метод. А может в NET есть и пути попроще.
да в принципе, вариант норм. подумаю над ним) спс
Цитата: Proximus
Скажите, как можно сделать собственный функционал по назначению горячих клавиш и последующему их использованию.
Показали бы вы ещё графический интерфейс своей программы. Надеюсь, вы не изобретаете велосипед, а используете классические меню - MenuStrip и тулбар - ToolStrip? Тогда использование шорткатов сводится к назначению выбранной комбинации свойству ShortcutKeys этих компонентов.