经常用的使用单例模式的思想,实现的控制winform窗体的单例显示的代码。希望会对新手有所帮助。using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace _21CenturyBar { class sigliton<T> where T : Form, new() { private static T instance = default(T); private static readonly object lockHelper = new object(); public static T Instance { get { if (instance == null) { lock (lockHelper) { if (instance == null) { instance = new T(); instance.FormClosed += new FormClosedEventHandler(FormDestroy); } } } return instance; } } private static void FormDestroy(object sender, FormClosedEventArgs e) { instance = default(T); } } } 在主窗体里边添加模板: private void ShowForm<T>() where T : Form, new() { T f = sigliton<T>.Instance; f.MdiParent = this; f.Show(); if (f.WindowState == FormWindowState.Minimized) f.WindowState = FormWindowState.Normal; f.BringToFront(); } 在主窗体里边调用: ShowForm<ChangePwd>();