在这个窗口form(n)打开 form(n+m) Form(n+m) form(n+m) = new Form(n+m)(); form(n) Hide();form(n+m) show();
打开新窗口就是重新新建这个窗口 多次打开同同一个窗口那不是多次打开了?关闭程序之后会有窗口没关闭,导致程序无法覆盖
如何解决呢
打开新窗口就是重新新建这个窗口 多次打开同同一个窗口那不是多次打开了?关闭程序之后会有窗口没关闭,导致程序无法覆盖
如何解决呢
static private Hashtable formMap = new Hashtable(); //'formClass 窗体类名字 //'keyPrefix 后缀,用于区别统一窗体,不同参数的情况,用后缀区分
//' 当keyPrefix不为空时,窗体由调用者显示 public Form CreateSingletonForm(string formClass, string keyPrefix)
{
string formKey = formClass;
string ffs = formKey; //窗体类的全名 try
{
//Find it in formMap first
Form frm = null;
Object obj = null; if (formMap.Contains(formKey))
frm = (Form)formMap[formKey]; //Then check if need create it
if (frm == null)
{
Assembly ta = Assembly.GetExecutingAssembly();
obj = ta.CreateInstance(ffs);
frm = (Form)obj; formMap[formKey] = frm;
}
else if (frm.IsDisposed)
{
System.Reflection.Assembly ta = System.Reflection.Assembly.GetExecutingAssembly();
obj = ta.CreateInstance(ffs);
frm = (Form)obj; formMap[formKey] = frm;
}
else if (frm.WindowState == FormWindowState.Minimized)
{
frm.WindowState = FormWindowState.Normal;
} frm.MdiParent = this;
frm.BringToFront();
if (keyPrefix == null || keyPrefix.Length == 0)
{
frm.Show();
} return frm;
}
catch (Exception ex)
{
Console.WriteLine("创建窗体失败:" + ex.Message);
}
return null;
}