您的位置:首页 > 其它

管理MDI窗口,解决繁琐的打开窗口的问题

2004-08-15 06:05 288 查看
public void showMdiChild(System.Windows.Forms.Form MdiChildForm)
{
int i;
Form[] frmForms = this.MdiChildren;
bool btrue=false;

Cursor.Current=Cursors.WaitCursor;

for (i=0; i<frmForms.Length; i++)
{
//窗体类实例转换成字符串时相同,说明是同一个实例
if (frmForms[i].ToString()==MdiChildForm.ToString())
{
MdiChildForm.Dispose(); //释放刚创建的子窗体的实例资源
this.MdiChildren[i].Activate(); //将已经创建的实例窗体激活
this.MdiChildren[i].BringToFront ();
MdiChildForm.TopMost =true;

btrue=true;
}

}
// this.Controls
//如果i等于窗体数组的长度,
//说明上面的循环完成后没有找到窗体实例与传过来的窗体实例相同,
//说明新创建的窗体没有被创建过,那么就把它显示出来
// frm.TopLevel=false;

if(btrue==false)
{
MdiChildForm.MdiParent = this; //指定窗体的MDI父窗体
MdiChildForm.Show();

if(MdiChildForm.MaximizeBox ==false)
{
MdiChildForm.WindowState = FormWindowState.Normal ;
MdiChildForm.StartPosition =FormStartPosition.CenterScreen;
}
else
MdiChildForm.WindowState = FormWindowState.Maximized ;
MdiChildForm.BringToFront ();
MdiChildForm.TopMost =true;
}
Cursor.Current =Cursors.Default ;
}

调用范例

frmSPZJ fm=new frmSPZJ();
showMdiChild(fm);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐