![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| semibug |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
Новичок в NET и вообще в оконном программировании.
Проект на C++/CLI (VS2005) Создал форму с кнопочками-меню в дизайнере, двойными кликами нагенерировал события. Бизнес функцию приложение выполняет, но беспокоит концентрация кода в одном файле (Form1.cpp), затруднена навигация, читаемость. Вопросы: 1. Как сделать более читаемым код. 2. Какие есть удобные способы навигации по методам большого класса, расположенного в одном файле. 3. Некоторые функции дублируются в меню и на тулбаре, можно ли както их связать, а не сводить к одному действию через дополнительный метод. |
|||
|
||||
| Cheloveck |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Прочесть книгу "Чистый код"
Прочесть книгу "Чистый код". Больших классов быть не должно!
Естесственно, ты можешь назначить и элементу меню, и кнопке тулбара один и тот же обработчик. Это можно и из дизайнера сделать. Это сообщение отредактировал(а) Cheloveck - 7.10.2011, 13:01 -------------------- ![]() |
||||
|
|||||
| semibug |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
В этом то и проблема, а как его уменьшать, если кнопок и меню большое кол-во не могу представить. Ну кроме как вручную создавать классы - контейнеры, но тогда теряется возможность использования визуального редактирования. Добавлено через 2 минуты и 12 секунд
В исходном сообщении не полностью выразил свою мысль, хотелось бы управлять и кнопкой и пунктом меню как одним объектом, например включать/выключать одновременно. Понмю в Delphi были такие компоненты, вроде Action, через которые можно было централизовано отключить кнопку и пункт меню например. |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Никогда не пользуюсь дизайнерами. Они много гадят в коде. Могу, разве что, подсмотреть, что он генрит в спорных ситуациях, например в лейаутах. Но в конечных продуктах весь код написан вручную. Создай такой объект =) Если серьёзно, чем очевиднее у тебя будет код, тем меньше проблем ты получишь при его сопровождении. То есть метод DisableItem(SomeID id), в котором ты деактивируешь конпку и пункт меню будет гараздо лучше, чем когда ты где-то в одном месте свяжешь объекты в один... -------------------- ![]() |
|||
|
||||
| semibug |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
Cheloveck, спасибо.
Избавляюсь от дизайнера. Также помогло раскидывание обработчиков по разным файлам в виде partial классов. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |