Конвертировать SDI в MDI

Я беру свой первый урок разработки C # для winforms. Я использую VS Premium 2013.

Мы работали над приложением весь семестр. Для нашего последнего проекта одна из наших задач - преобразовать его из SDI в MDI.

Основная форма имеет следующую структуру:

  1. Menustrip
  2. полоска инструментов
  3. разделенная панель с элементом управления treeview в своем собственном классе, элементом управления listview в своем собственном классе и полем форматированного текста в своем собственном классе (все они затем отображаются в основной форме)
  4. пользовательский элемент управления, который функционирует как строка состояния, закрепленная в нижней части формы

Код для всех событий кликов и бизнес-логики уже написан. Это уже надежное приложение.

Есть ли «лучшая практика» для преобразования такого SDI в MDI? Здесь много кода, и, если я не получу лучшего руководства, я предполагаю, что мне придется создать новый project, переместите классы, которые я могу, а затем перепишите все вспомогательные обработчики событий и связанную логику.

Есть ли более эффективный по времени вариант, который кто-то может порекомендовать?


person Diana Tortolini    schedule 10.04.2014    source источник


Ответы (1)


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

То, что подобные изменения относительно безболезненны, является одной из основных причин использования шаблонов проектирования при разработке. Кроме того, чем менее связаны типы в вашем проекте, тем легче они перемещаются в этих случаях. Например, если у вас есть два типа, каждый из которых полагается на другой, чтобы быть таким, какой они есть, то любое изменение окажет значительное влияние на оба. Однако, если эти типы разделены, изменение одного может абсолютно не повлиять на другой.

person jmcilhinney    schedule 10.04.2014