您的位置:首页 > 编程语言 > C#

C# .net的winform开发中如何…

2014-09-10 15:21 211 查看
原文地址:.net的winform开发中如何避免窗体或子窗体的重复打开">C# .net的winform开发中如何避免窗体或子窗体的重复打开作者:吴培洪一.避免重复打开窗体

/// <summary>

/// 传入要打开的窗体实例

/// </summary>

/// <param
name="frm"></param>

public void OpenForm(System.Windows.Forms.Form frm)

{

if (frm == null) return;

foreach (System.Windows.Forms.Form f in
Application.OpenForms)

{

if (f.Name == frm.Name)

{

f.Activate();

f.Show();

frm.Dispose();

System.GC.Collect();

System.GC.WaitForPendingFinalizers();

return;

}

}

frm.StartPosition =
System.Windows.Forms.FormStartPosition.CenterScreen;

frm.Show();

System.GC.Collect();

System.GC.WaitForPendingFinalizers();

}

调用
private void
btnsUserManage_Click(object sender, EventArgs e)

{

frmUserManage fL = new frmUserManage();

OpenForm(fL);

}
二、避免重复打开子窗体

///
<summary>

/// 需要显示子窗体

/// </summary>

/// <param
name="frm">Baseform/Form类型子窗体</param>

public void MdiShow(Baseform frm)

{

foreach (System.Windows.Forms.Form f in this.MdiChildren)

{

if (f.Name == frm.Name)

{

f.Activate();

f.Show();

frm.Dispose();

System.GC.Collect();

System.GC.WaitForPendingFinalizers();

return;

}

}

frm.StartPosition =
System.Windows.Forms.FormStartPosition.CenterScreen;

frm.MdiParent = this;

frm.KeyPreview = true;

frm.FMain = this;

frm.Show();

frm.initButton();

System.GC.Collect();

System.GC.WaitForPendingFinalizers();

}
调用
private void
btnsUserManage_Click(object sender, EventArgs e)

{

frmUserManage fL = new frmUserManage();

MdiShow(fL);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: