逻辑:
所有打开的窗体都用同一个Form 变量打开,可获当前打开的空体的ClassName,然后以Application 的打开空体集判断当前是否还有窗体打开。
如下代码所示,统一Show()的入口:
private Form tempForm_ = null;
private void SetShowWin(Form form1)
{
try
{
Form temp_ = null;
if (tempForm_ != null) temp_ = Application.OpenForms[tempForm_.Name];
if (temp_ == null)
{
tempForm_ = null;
tempForm_ = form1;
tempForm_.Show();
}
else
{
if (MessageBox.Show("已打开了一个仪器窗口!不能同时打开多个!") == System.Windows.Forms.DialogResult.OK)
{
temp_.Activate();
}
}
}
catch (Exception ex)
{
CEUtility.Logger.LogError(ex);
MessageBox.Show(ex.Message);
}
}