调用类:
/// <summary> /// 窗口基类,使用基类创建实例,采用单例模式,避免重复创建 /// </summary> /// <typeparam name="T"></typeparam> public class CellFrom<T> where T :Form { private static T ThisFrom; /// <summary> /// 获取实例 /// </summary> /// <returns></returns> public static T GetInstance() { if (ThisFrom == null || ThisFrom.IsDisposed) { //ThisFrom = new T(); ThisFrom = System.Activator.CreateInstance<T>(); ThisFrom.FormClosed += new System.Windows.Forms.FormClosedEventHandler(ThisFromClosed); } return ThisFrom; } /// <summary> /// 关闭时释放资源 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void ThisFromClosed(object sender, FormClosedEventArgs e) { ThisFrom.Dispose(); } }
调用方法:
private void JoinTheProgramItem_Click(object sender, EventArgs e) { JoinTheProgramForm joinTheProgramFrom = CellFrom<JoinTheProgramForm>.GetInstance(); joinTheProgramFrom.MdiParent = this; joinTheProgramFrom.WindowState = FormWindowState.Maximized; joinTheProgramFrom.Show(); }