在Winform应用程序中,显示窗体的方法有两种方法:第一种,Show()方法,这种方法当点击多次按钮的时候会显示多个当前的窗体,造成操作不便。第二种,ShowDialog()方法,这种方法显示出窗体之后,只能对当前窗体进行操作直到这个窗体关闭之后,用户体验不好。那怎样才能只产生一个窗体,而且不影响对其他窗体的操作?解决这样的问题最简单的想法就是如果每次单击按钮都使用相同的实例化对象,就只能产生一个窗体了,再使用Show()方法显示窗体就不会影响其他窗体的操作了。
如图,实现这样一个小功能,不管点击多少次这个分区设置,只弹出一个子窗体,在子窗体最小化后,点“分区设置按钮”,可以把最小化的子窗口继续打开,具体如下:
网上有很多教程用单列模式(问题来了,假如说我有很多的窗体都要使用单例模式,难道我都要把每个窗体的代码都要修改成那个样子吗,假如窗体多的话,这种方式就会变得很麻烦,那有没有一种简单的方式,能让我们不管增加多少窗体都能很简单的实现我们想要的功能呢?),下面用一个泛型类代替单列模式代码。代码如下:
public class GenericSingleton<T> where T : Form, new()
{
private static T t = null;