调用类:
/// <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();
}