来源:c# winform中预防窗体重复打开 - 学习靠自己 - 博客园
foreach (Form f in Application.OpenForms)
{
if (f.GetType().FullName == "K3DataCheck." + frmName) //根据命名空间判断是否重复
{
if (f.WindowState == FormWindowState.Minimized)
{
f.WindowState = FormWindowState.Normal;
}
f.Activate();
f.Show();
return;
}
}
var form = Activator.CreateInstance(Type.GetType("K3DataCheck." + frmName)) as Form;
form.Show(); //若没有打开,则通过反射打开窗体.
代码中 frmName是类名,可以确定唯一性.