Основная форма становится довольно большой.Предложения? - PullRequest
2 голосов
/ 12 сентября 2011

У меня есть (проблема?), Когда основной код формы моего приложения становится довольно большим.Поскольку это основной раздел приложения, существует множество обработчиков событий.

Я действительно не хочу использовать частичные классы для разделения разделов кода, потому что тогда я мог бы просто использовать регионы.Кроме того, классы частичной формы не отображаются в конструкторе и в целом просто сбивают с толку.

Не совсем уверен, что делать, если честно.Файл содержит около 1000 строк кода, а все остальные мои классы - по 10-150 строк каждый.Я не могу на самом деле инкапсулировать поведение в другие объекты, потому что большинство обработчиков событий манипулируют элементами управления в форме или переменными-членами класса, и для этого потребуется много передачи параметров и путаницы.

Попыткаподумайте о возможном курсе действий.Я действительно хотел бы инкапсулировать много поведения в другие классы, но проблема в том, что обработчики событий изменяют частные элементы управления и переменные-члены.Эти классы должны были бы каким-то образом иметь доступ к этим данным, но я бы предпочел не просто предоставить экземпляр формы классу и сделать все элементы управления и данные элементов общедоступными>.>

Есть идеи?

Ответы [ 2 ]

6 голосов
/ 12 сентября 2011
  1. Разбейте его на пользовательские элементы управления.
  2. Убедитесь, что в форме нет ничего, что не относится к презентации (отображение для пользователя, сбор данных, введенных пользователем). Переместите весь доступ к данным в отдельные классы, и то же самое для бизнес-логики.
2 голосов
/ 12 сентября 2011

Как правило, это делается посредством инкапсуляции частей формы в UserControls, которые управляют своими собственными внутренними событиями / элементами управления. UserControl может быть передан / создан с соответствующими данными из главной формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...