В StackOverflow задается множество вопросов о том, как скрыть Form1 и показать Form2. И, как правило, возникают несколько разных ответов:
1)
// Program.cs
Application.Run(new Form1());
// Form1.cs
Form2 form2 = new Form2();
form2.Show();
this.Hide();
2)
// Program.cs
Form1 form1 = new Form1();
Form2 form2 = new Form2();
form1.Show();
form2.Show();
Application.Run();
...etc..
Я не ищу простого одноразового решения вроде # 1. Я ищу лучшие методы управления формами. Приложение с 5-8 формами, открывающее и закрывающее друг друга часто - какой лучший способ управлять этими формами?
Моя идея заключалась в том, чтобы сделать каждую форму (ленивый?) Singleton и похоронить их в классе FormsManager
некоторого рода (например, решение # 2, но ++). И тогда отдельные формы могут называть что-то вроде FormsManager.GetForm<WelcomeDialog>()
.
Но мне было интересно, какие люди используют больше опыта. Опять же, эти решения не должны быть быстрыми хаками. Они должны быть ориентированными на дизайн, возможно архитектурными и долгосрочными решениями.
редактирует:
Это довольно общий вопрос (так что требования довольно открыты) для всех, у кого могут быть такие же проблемы. Конкретно для моей ситуации, однако, мне не нужно несколько форм, показанных при запуске. Кроме того, у меня нет форм MDI. Я могу иметь несколько модальных форм, но они в основном немодальные.