![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 5 Всего: 38 |
Привет всем, у меня тут такая проблема: я создаю меню и тулбар - они полностью копируют друг друга по функциям (ну как обычно), ну к соответствующим элементам этих меню я подрубаю одни и те же обработчики - все как надо, но у меня есть такие пункты меню, которые можно делать Cheked и я хочу чтобы при нажатии допустим на кнопку на тулбаре соответствующий пункт меню также становился Cheked - тупо прописывать в обработчиках Cheked = true/false как то некрасиво, и еще как сделатьтак чтобы выбранные мной кнопки на тулбаре и соответственно меню работали как радио батоны, а то опять же приходится прописывать везде Cheked. Я знаю есть нормальный способ это сделать, пытался разбираться со свойством Merged(вроде так называется), но в МСДН че то не нашел ниче путнего. Подскажите, пожалуйста как быть.
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 5 Всего: 38 |
Попробую по другому написать
1) Создаю главное меню (MenuStrip), создаю тулбар. Допустим в главном меню есть пункт у которого стоит свойство CheckOnClick=true, в тулбаре есть кнопка с таким же свойством. Как сделать так, чтобы при выборе этого пункта меню(из главного меню) кнопка на тулбаре тоже активировалась. Причем не прописывая в обработчике события OnClick ничего. 2) Допустим у меня есть тулбар, на нем 3 кнопки. Как сделать так, чтобы они работали как радио батоны по отношению друг к другу. И тоже без прописываний в обработчике OnClick. Если все прописывать в обработчике, то количесво кода возрастает с количеством кнопок, что не есть хорошо. Надеюсь, что сейчас понятно в чем у меня проблема Заранее спасибо за помощь -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
SpaceSpace |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 1 Всего: 10 |
Низя, только если будешь вешать обработчики свои.
А конролировать кнопки можно централизованно - раз подписал обработчик, а он уже сам все пробегает и отмечает что нужно Это сообщение отредактировал(а) SpaceSpace - 5.6.2007, 07:59 -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 9 Всего: 27 |
-------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет ![]() И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 5 Всего: 38 |
Это ты про случай с таймером? Если да, то у меня вопрос а не нагружает ли систему постоянная проверка в таймере, допустим 10 раз в секунду? archeg, не думал что все так сложно, по моему даже в MFC было с этим делом проще Ну на первый вопрос я ответ получил, теперь понятно, что не все так просто. archeg++ А вот по поводу второго меня беспокоит, что если прописать обработчики, то в каждом из них будет код который отключает все кнопки из группы кроме нажатой. Если добавить еще кнопку, то придется в нее добавить код по отключению всех других кнопок кроме нее и еще в каждый из обработчиков других кнопок добавить код по отключению этой новой кнопки. В результате код очень быстро разрастается. Как с этим можно бороться? Это сообщение отредактировал(а) KelTron - 5.6.2007, 18:03 -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
SpaceSpace |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 1 Всего: 10 |
не обработчики, а один обработчик. вешаеш его одного на все твои кнопки. В нем, централизованная логика для всего тулбара. Ясна? -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 5 Всего: 38 |
Да все ясно, че то я протупил маленько, спасибо Это сообщение отредактировал(а) KelTron - 7.6.2007, 06:08 -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 9 Всего: 27 |
Тут нету ничего сложного - можно как-то написать очень-очень тупо, такой вариант может казаться очень легким - на самом деле это не так. Когда прийдет время рефакторинга, в коде будет легко запутатся. Если же использовать паттерн - никогда не запутаешся ![]() P.S. Как сказано в статье, этот паттерн резонно использовать только для довольно больших приложений. Если же приложение маленькое - наверное можно сделать тупо ![]() -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет ![]() И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |