Это приложение, использующее Domain, Model, Presentation (Winforms/WPF версия MVC-форматирования) для вашего приложения.
У вас может быть каждая форма как свой собственный класс, ну, это их собственный класс. Создайте каждый класс формы, но добавьте к нему некоторые публичные элементы, если элементы управления являются закрытыми. Попросите их иметь только «получить» свойства и вернуть значения любых элементов управления или переменных в этой форме. Основной формой будет контрольная форма. Все формы будут обрабатываться основной формой, поэтому, когда вы ее открываете, это класс, к которому может обращаться основная форма.
Теперь, если я помню (делал больше MVC и не Winforms в последнее время), я считаю, что если вы используете метод ShowDialog(), он заморозит основной поток, поэтому, когда вы закрываете основную форму, вы можете продолжить и прочитать которые вы открыли в своем классе форм. Синхронный Я считаю, что он работает как. Если вы используете только Show(), поток будет продолжать работать на грузовиках, асинхронно. При асинхронном использовании вам может понадобиться использовать основную форму в вашем стартовом коде, поэтому всегда есть окно, но подписаться на событие закрытия ваших форм и иметь метод, который может вывести этих публичных членов. Обязательно создайте дополнительные формы в корне основного класса, чтобы он не выпал из области действия, когда существует метод, который его вызывает. Возможно, вы даже сможете сделать метод, который вызывает асинхронный вызов, и ждать перед командой, которая запускает метод Show в форме.
Резюме. Рассматривайте каждую форму как свой собственный класс, но добавляйте публичные элементы, которые могут считывать значения из элементов управления и/или переменных, которые вы хотите.Прочитайте эти данные из класса, когда он закрывается через событие или синхронно, когда поток закрывается из закрытия формы. Закрытие формы не отбрасывает объект, а просто визуализирует форму.
О, если вы передаете информацию из основной формы ребенку, который вы открываете, добавьте конструктор для этого класса формы, который принимает ваши данные как модель или значения, чтобы заполнить соответствующие переменные или формы, прежде чем показывать или создать публичное свойство, вы можете поместить свои значения, которые хотите отправить, перед тем, как показать класс.
Помните, что все это класс, как только вы смотрите на него как таковое и относитесь к нему как таковому, ответ придет. :-)
Я должен предупредить, я долгое объяснение.
При работе, помещающем все это в память, возможны некоторые ошибки. Дайте мне знать, если есть.