参考了网上一些资料.如下:

private static 窗体 instance = null;
//添加一个属性
public static 窗体 Instance
{
     
set{
     }
     
get{
         
if(instance == null){
             
new 窗体();
         }
         
return instance;
     }
}

在窗体的构造函数中加入如下代码

instance = this;

创建窗体Closed事件

private void 窗体_FormClosed(object sender, FormClosedEventArgs e)
{
    instance 
= null;
}

使用方法:
在要调用该窗体的地方加入如下代码

窗体 myfrm = 窗体.Instance; 
myfrm.Show();
myfrm.Activate();

自己的,如下:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections;
using System.ComponentModel;

namespace WinForm
{
 /// <summary>
 /// FormManager 的摘要说明。
 /// </summary>
 public class FormManager
 {
  private static Form3 form3=null;
  private static Form2 form2=null;
  private FormManager()
  {
   
  }

  public static Form2 Form2Ins
  {
   get{
    if(form2==null)
    {
     form2=new Form2();
    }
    return form2;
   }
  }

  public static Form3 Form3Ins
  {
   get
   {
    if(form3==null)
    {
     form3=new Form3();
    }
    return form3;
   }
  }
 }
}
窗体的Closed事件里面加上FormManager.Form2Ins=null;

 使用法:
FormManager.Form2Ins.Show()

又一方法,大致同上,只是将关闭的处理交到一个类来处理了.这样,就只需要修改FormManager这个就可以了
private static Form2 form2=null;
  public static Form2 Form2Ins
  {
   get{
    if(form2==null)
    {
     form2=new Form2();
     form2.Closed+=new EventHandler(FormManager.ClosedWindow2);
    }
    return form2;
   }
   set
   {
    form2=value;
   }
  }
  private static void ClosedWindow2(object sender, System.EventArgs e)
  {
   form2=null;
  }
本想把关闭全部写在一个方法里面,看来还要看看委派这里了..请大家多多指点

欢迎大家踊跃拍砖!!!

相关文章:

  • 2022-12-23
  • 2021-07-04
  • 2022-01-03
  • 2021-10-25
  • 2021-11-23
  • 2021-09-18
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-27
  • 2022-12-23
  • 2021-11-17
  • 2022-12-23
  • 2022-12-23
  • 2021-06-20
  • 2022-12-23
相关资源
相似解决方案