| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Связь элементов меню с тулбаром |
| Автор: KelTron 28.5.2007, 05:36 |
| Привет всем, у меня тут такая проблема: я создаю меню и тулбар - они полностью копируют друг друга по функциям (ну как обычно), ну к соответствующим элементам этих меню я подрубаю одни и те же обработчики - все как надо, но у меня есть такие пункты меню, которые можно делать Cheked и я хочу чтобы при нажатии допустим на кнопку на тулбаре соответствующий пункт меню также становился Cheked - тупо прописывать в обработчиках Cheked = true/false как то некрасиво, и еще как сделатьтак чтобы выбранные мной кнопки на тулбаре и соответственно меню работали как радио батоны, а то опять же приходится прописывать везде Cheked. Я знаю есть нормальный способ это сделать, пытался разбираться со свойством Merged(вроде так называется), но в МСДН че то не нашел ниче путнего. Подскажите, пожалуйста как быть. |
| Автор: KelTron 5.6.2007, 07:30 |
| Попробую по другому написать 1) Создаю главное меню (MenuStrip), создаю тулбар. Допустим в главном меню есть пункт у которого стоит свойство CheckOnClick=true, в тулбаре есть кнопка с таким же свойством. Как сделать так, чтобы при выборе этого пункта меню(из главного меню) кнопка на тулбаре тоже активировалась. Причем не прописывая в обработчике события OnClick ничего. 2) Допустим у меня есть тулбар, на нем 3 кнопки. Как сделать так, чтобы они работали как радио батоны по отношению друг к другу. И тоже без прописываний в обработчике OnClick. Если все прописывать в обработчике, то количесво кода возрастает с количеством кнопок, что не есть хорошо. Надеюсь, что сейчас понятно в чем у меня проблема Заранее спасибо за помощь |
| Автор: SpaceSpace 5.6.2007, 07:57 |
| Низя, только если будешь вешать обработчики свои. А конролировать кнопки можно централизованно - раз подписал обработчик, а он уже сам все пробегает и отмечает что нужно |
| Автор: archeg 5.6.2007, 10:03 |
| Почитай про паттерн "команда" Например тут: http://www.rsdn.ru/article/patterns/patterncommand.xml |
| Автор: SpaceSpace 6.6.2007, 08:44 | ||
не обработчики, а один обработчик. вешаеш его одного на все твои кнопки. В нем, централизованная логика для всего тулбара. Ясна? |
| Автор: KelTron 7.6.2007, 06:06 |
Да все ясно, че то я протупил маленько, спасибо |
| Автор: archeg 7.6.2007, 16:10 | ||
Тут нету ничего сложного - можно как-то написать очень-очень тупо, такой вариант может казаться очень легким - на самом деле это не так. Когда прийдет время рефакторинга, в коде будет легко запутатся. Если же использовать паттерн - никогда не запутаешся P.S. Как сказано в статье, этот паттерн резонно использовать только для довольно больших приложений. Если же приложение маленькое - наверное можно сделать тупо |