C#单例模式的使用

单例模式是在这几个模式中相对比较简单的 模式吧,但是还是有些问题是需要注意的

1.打开正在上机的窗体会发现,正在上机的菜单栏出现在了父窗体上


     设置一下菜单栏的属性:AllowMerge 的属性为false即可


2.当我们在父窗体上加载图片的时候会发现子窗体藏在图片的后面,在父窗体上画上lable框的时候,lable也是飘在父

窗体上面的。这要怎么解决呢? 我们需要在父窗体上加一个panel控件,然后在panel控件中画图片或是lable框。

让窗体最前显示:

      

 [DllImport("user32")]
          public static extern int SetParent(int hWndChild, int hWndNewParent);

在主窗体中的子窗体的触发事件中写

     

   子窗体 ad = new frmInquireLine();
      SetParent((int)ad.Handle, (int)this.Handle);
      ad.MdiParent = this;
      子窗体.GetInstance().Show();

在子窗体中写单例模式(参考的设计模式课本)

     

 public static frmInquiryMoney frm = null;
        public frmInquiryMoney()
        {
            InitializeComponent();
        }
        
        public static frmInquiryMoney GetInstance()
        {
            if (frm == null || frm.IsDisposed)
            {
                frm = new frmInquiryMoney();
                frm.MdiParent = frmMain.ActiveForm;
            }
            return frm;
        }
      

   

你可能感兴趣的:(------【设计模式】,•,架构设计)