相关疑难解决方法(0)

多表单应用程序显示和隐藏表单的最佳实践?

StackOverflow上有很多问题,询问如何隐藏Form1并显示Form2.而且,通常会出现一些不同的答案:

1)

// Program.cs
Application.Run(new Form1());
// Form1.cs
Form2 form2 = new Form2();
form2.Show();
this.Hide();
Run Code Online (Sandbox Code Playgroud)

2)

// Program.cs
Form1 form1 = new Form1();
Form2 form2 = new Form2();
form1.Show();
form2.Show();
Application.Run();
Run Code Online (Sandbox Code Playgroud)

...etc..

我不是在寻找像#1这样简单的一次性解决方案.我正在寻找最佳的表单管理实践.一个5-8种形式的应用程序,经常打开和关闭 - 管理这些表单的最佳方法是什么?

我的想法是让每个形式成为一个(懒惰的?)Singleton并将它们埋在某种FormsManager类中(比如解决方案#2但是++).然后个别形式可能会称之为FormsManager.GetForm<WelcomeDialog>().

但我想知道有更多经验的人使用过什么.同样,这些解决方案不应该是快速破解.它们应该是面向设计的,可能是架构的,也是长期的解决方案.

编辑:

对于可能遇到同样问题的人来说,这是一个非常通用的问题(因此要求非常开放).具体到我的情况,我不需要在启动时显示多个表单.另外,我没有MDI表格.我可能有一些模态形式,但它们大多是非模态的.

c# architecture design-patterns winforms

16
推荐指数
2
解决办法
4万
查看次数

标签 统计

architecture ×1

c# ×1

design-patterns ×1

winforms ×1