Как правильно создавать приложения Winform с несколькими «экранами»?

11

Как правильно создать приложение Winform с несколькими «экранами»? Например, я пытаюсь написать небольшую программу резервного копирования (в основном для хихиканья), и я выгружаю элементы управления и контейнеры в форму.

Я использую панели и групповые блоки для разделения различных экранов (например: я использую панель для хранения всех элементов управления для окна «Настройки» и другую панель для отображения всех текущих резервных копий, которые были настроены ). Ну, мой файл form.cs превратился в огромный код, и я чувствую, что делаю что-то не так. Я едва могу найти что-нибудь в файле, и я готов начать все сначала. Этот проект был только для меня, чтобы расширить мои знания C # и .NET, поэтому начать новый проект не так уж сложно.

CurtisHx
источник

Ответы:

10

Существует несколько способов управления сложностью пользовательского интерфейса.

  • Если у вас много форм, вы можете выбрать шаблон проектирования, который управляет переходами: например, Application Controller или ближе к металлу: State .
  • Вы можете объединить группы элементов управления в единые элементы управления. В winforms вы используете пользовательские элементы управления .
  • Если сложность определяется количеством кода в вашей форме, а не количеством элементов управления в форме, вы можете просто лучше инкапсулировать код в объекты, используя стандартные методы объектно-ориентированного программирования. Понимание принципов SOLID - хорошее начало.
  • В противном случае существуют шаблоны для работы с пользовательскими интерфейсами. Среди прочего (заметное разделение интересов) они облегчают организацию кода. Некоторые общие из них MVC , MVP , MVVM

Исходя из вашего описания, я бы использовал пользовательские элементы управления для замены панелей, которые вы используете. Затем просто поместите эти пользовательские элементы управления на ваши формы, где находились ваши панели.

Стивен Эверс
источник
4

В Winforms каждая форма должна выполнять свою работу. У вас должна быть форма для настроек, другая для отображения текущих резервных копий и т. Д.

Если вы хотите придерживаться единой формы нескольких групп, вы можете создать пользовательские элементы управления , как сказал SnOrfus , для разделения кода. Если у вас все еще остается масса кода в некоторых классах, у вас могут быть классы Partial для разделения различного кода на разные файлы.

Частичные занятия могут показаться хорошей альтернативой, но я только рекомендую это вам, потому что вы создаете хобби-проект. Для более крупного или более сложного проекта вы должны использовать шаблоны, чтобы делегировать правильную работу нужным объектам, вы также можете переключиться на новую технологию, такую ​​как WPF, где проще использовать шаблоны, такие как MVVM .

Вальтер Коста
источник