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);
}
/// <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);
}
相关文章推荐
- C#&nbsp;.net的winform开发中如何…
- C#&nbsp;Winform中如何实现窗体之…
- ASP.NET&C#开发的注意事项
- 如何在VS.NET/C# Builder开发的网页中也能实现DOS下录入数据回车换行的功能
- C#.NET Winform+WebService开发框架完整版本
- 同事间闲聊,如何成为优秀架构师?如何才能快速能成为C#ASP.NET开发高手?
- C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
- Asp.net &C#开发中的一些注意事项及小技巧
- 如何在Visual Studio C#.Net WinForm 中 TreeView中右键选择节点进行处理?
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- 同事间闲聊,如何成为优秀架构师?如何才能快速能成为C#ASP.NET开发高手?
- 如何用C#进行Winform MP3播放器开发
- Winform c# 微软.Net开发中的多线程编程总结
- Windows Mobile使用.NET Compact Framework开发Winform时如何Dispose资源
- C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
- 如何在Visual Studio C#.Net WinForm 中 TreeView中右键选择节点进行处理
- Asp.net &C#开发中的一些注意事项及小技巧【转】
- C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
- c# 中如何设置combox 让出现text value两个值 winform开发
- ASP.NET&C#学习笔录2(vs2010项目如何在vs2008中打开 )