| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Дремучий лес обработчиков формы |
| Автор: semibug 7.10.2011, 09:39 |
| Новичок в NET и вообще в оконном программировании. Проект на C++/CLI (VS2005) Создал форму с кнопочками-меню в дизайнере, двойными кликами нагенерировал события. Бизнес функцию приложение выполняет, но беспокоит концентрация кода в одном файле (Form1.cpp), затруднена навигация, читаемость. Вопросы: 1. Как сделать более читаемым код. 2. Какие есть удобные способы навигации по методам большого класса, расположенного в одном файле. 3. Некоторые функции дублируются в меню и на тулбаре, можно ли както их связать, а не сводить к одному действию через дополнительный метод. |
| Автор: semibug 7.10.2011, 14:25 | ||
В этом то и проблема, а как его уменьшать, если кнопок и меню большое кол-во не могу представить. Ну кроме как вручную создавать классы - контейнеры, но тогда теряется возможность использования визуального редактирования. Добавлено через 2 минуты и 12 секунд
В исходном сообщении не полностью выразил свою мысль, хотелось бы управлять и кнопкой и пунктом меню как одним объектом, например включать/выключать одновременно. Понмю в Delphi были такие компоненты, вроде Action, через которые можно было централизовано отключить кнопку и пункт меню например. |
| Автор: Cheloveck 7.10.2011, 15:03 |
Никогда не пользуюсь дизайнерами. Они много гадят в коде. Могу, разве что, подсмотреть, что он генрит в спорных ситуациях, например в лейаутах. Но в конечных продуктах весь код написан вручную. Создай такой объект =) Если серьёзно, чем очевиднее у тебя будет код, тем меньше проблем ты получишь при его сопровождении. То есть метод DisableItem(SomeID id), в котором ты деактивируешь конпку и пункт меню будет гараздо лучше, чем когда ты где-то в одном месте свяжешь объекты в один... |
| Автор: semibug 8.10.2011, 09:59 |
| Cheloveck, спасибо. Избавляюсь от дизайнера. Также помогло раскидывание обработчиков по разным файлам в виде partial классов. |