Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связь элементов меню с тулбаром 
V
    Опции темы
KelTron
Дата 28.5.2007, 05:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 5
Всего: 38



Привет всем, у меня тут такая проблема: я создаю меню и тулбар - они полностью копируют друг друга по функциям (ну как обычно), ну к соответствующим элементам этих меню я подрубаю одни и те же обработчики - все как надо, но у меня есть такие пункты меню, которые можно делать Cheked и я хочу чтобы при нажатии допустим на кнопку на тулбаре соответствующий пункт меню также становился Cheked - тупо прописывать в обработчиках Cheked = true/false как то некрасиво, и еще как сделатьтак чтобы выбранные мной кнопки на тулбаре и соответственно меню работали как радио батоны, а то опять же приходится прописывать везде Cheked. Я знаю есть нормальный способ это сделать, пытался разбираться со свойством Merged(вроде так называется), но в МСДН че то не нашел ниче путнего. Подскажите, пожалуйста как быть.


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
KelTron
Дата 5.6.2007, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 5
Всего: 38



Попробую по другому написать

1) Создаю главное меню (MenuStrip), создаю тулбар. Допустим в главном меню есть пункт у которого стоит свойство CheckOnClick=true, в тулбаре есть кнопка с таким же свойством. Как сделать так, чтобы при выборе этого пункта меню(из главного меню) кнопка на тулбаре тоже активировалась. Причем не прописывая в обработчике события OnClick ничего.

2) Допустим у меня есть тулбар, на нем 3 кнопки. Как сделать так, чтобы они работали как радио батоны по отношению друг к другу. И тоже без прописываний в обработчике OnClick.

Если все прописывать в обработчике, то количесво кода возрастает с количеством кнопок, что не есть хорошо.

Надеюсь, что сейчас понятно в чем у меня проблема

Заранее спасибо за помощь


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
SpaceSpace
Дата 5.6.2007, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 10.4.2007
Где: Самара

Репутация: 1
Всего: 10



Низя, только если будешь вешать обработчики свои.
А конролировать кнопки можно централизованно - раз подписал обработчик, а он уже сам все пробегает и отмечает что нужно

Это сообщение отредактировал(а) SpaceSpace - 5.6.2007, 07:59


--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
archeg
Дата 5.6.2007, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 9
Всего: 27



Почитай про паттерн "команда"

Например тут: http://www.rsdn.ru/article/patterns/patterncommand.xml


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
KelTron
Дата 5.6.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 5
Всего: 38



Цитата(SpaceSpace @  5.6.2007,  07:57 Найти цитируемый пост)
А конролировать кнопки можно централизованно - раз подписал обработчик, а он уже сам все пробегает и отмечает что нужно

Это ты про случай с таймером?
Если да, то у меня вопрос а не нагружает ли систему постоянная проверка в таймере, допустим 10 раз в секунду?

archeg, не думал что все так сложно, по моему даже в MFC было с этим делом проще
Ну на первый вопрос я ответ получил, теперь понятно, что не все так просто.
archeg++

А вот по поводу второго меня беспокоит, что если прописать обработчики, то в каждом из них будет код который отключает все кнопки из группы кроме нажатой. Если добавить еще кнопку, то придется в нее добавить код по отключению всех  других кнопок кроме нее и еще в каждый из обработчиков других кнопок добавить код по отключению этой новой кнопки. В результате код очень быстро разрастается. Как с этим можно бороться?

Это сообщение отредактировал(а) KelTron - 5.6.2007, 18:03


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
SpaceSpace
Дата 6.6.2007, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 10.4.2007
Где: Самара

Репутация: 1
Всего: 10



Цитата

А вот по поводу второго меня беспокоит, что если прописать обработчики

не обработчики, а 
один обработчик.
вешаеш его одного на все твои кнопки.
В нем, централизованная логика для всего тулбара.
Ясна?


--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
KelTron
Дата 7.6.2007, 06:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 5
Всего: 38



Цитата(SpaceSpace @  6.6.2007,  08:44 Найти цитируемый пост)
Ясна?


Да все ясно, че то я протупил маленько, спасибо


Это сообщение отредактировал(а) KelTron - 7.6.2007, 06:08


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
archeg
Дата 7.6.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 9
Всего: 27



Цитата(KelTron @  5.6.2007,  17:50 Найти цитируемый пост)
archeg, не думал что все так сложно, по моему даже в MFC было с этим делом прощеНу на первый вопрос я ответ получил, теперь понятно, что не все так просто.

Тут нету ничего сложного - можно как-то написать очень-очень тупо, такой вариант может казаться очень легким - на самом деле это не так. Когда прийдет время рефакторинга, в коде будет легко запутатся. Если же использовать паттерн - никогда не запутаешся smile  Да и проблемы отпадут сами собой.

P.S. Как сказано в статье, этот паттерн резонно использовать только для довольно больших приложений. Если же приложение маленькое - наверное можно сделать тупо  smile 


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.1455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.