Я разрабатываю приложение aС#, которое содержит около 30 winforms. каждая форма выполняет некоторые функции и передает данные во вторую форму. проблема в том, что каждая форма открыта в новом окне, и в конце я должен закрыть их все. Все, что я хочу, это то, что все формы открываются в одной/основной форме, как в окнах, когда мы открываем несколько форм, которые она открывает в одном окне. Чтобы перейти, я использую это:
form1 f1 = new form1 ();
f1.showdialogue().
как в окнах каждая папка открывается в одном окне и т.д.
Вы описываете Windows Explorer?
Проводник Windows использует оболочку Windows для просмотра пространств имен оболочек. Каждое пространство имен предоставляет ряд логических папок и элементов папок. Каждая папка может иметь ShellViews специально для отображения содержимого. Просмотр не обязательно должен быть "папками или файлами", но также и принтерами; сетевые компьютеры; или Шрифты, чтобы назвать несколько. Консоль управления Microsoft (MMC) следует аналогичной схеме.
Вы можете сделать что-то подобное в С#.
Кроме того, вы подумали о приложении стиля для веб -навигации (веб-стиль, Microsoft Money), и вместо того, чтобы всплывать новые окна, вы просто вставляете UserControl в главное окно. Этот элемент управления занимает большую часть пространства пользовательского интерфейса. "Z-порядок" отсутствует, потому что нет перекрывающихся окон.
Тогда у вас могут быть кнопки " Вперед" и " Назад".
Инспекционный дизайн пользовательского интерфейса Lookup In MSDN, а также программирование пространства имен Shell, хотя бы для получения идей.
Немного не по теме, поскольку вы используете WinForms, но посмотрите на WPF Page Navigation, чтобы получить там идеи.
вы можете использовать MDIParent для этой проблемы типа. и вы можете закрыть любое количество форм, получая всю дочернюю форму формы MdiParent.