C#winform中,MdiParent中每個子窗口都只能打開一個


之前在開發winform程序的時候,經常做這樣的控制:每個form同時只能出現一個。

方法有很多,通常我都采用這種方式:(通過一個public 的static 字段進行控制)
 主窗體menu:

private   void  subMenu1ToolStripMenuItem_Click( object  sender, EventArgs e)
        
{
            
if (frm.sign == false)
            
{
                frm f 
= new frm();
                f.MdiParent 
= this;
                frm.sign 
= true;
                f.Show();
                
            }

            
else
            
{
                MessageBox.Show(
"該窗體已經存在~");
                
return;
            }


        }

frm窗體:

  public   static   bool  sign  =   false ;

        
public  frm()
        
{    
           InitializeComponent();
        }


        
private   void  frm_FormClosing( object  sender, FormClosingEventArgs e)
        
{
            sign 
= false;
        }

    這種方式可以很好的工作。
在Singleton Pattern,提到這種模式有幾個特點:

  • 單例類只能有一個實例。
  • 單例類必須自己創建自己的唯一實例。
  • 單例類必須給所有其它對象提供這一實例。
轉自:
(並非原創,但是找不到原來的鏈接了,如果誰看到了原文鏈接,留個言,謝謝)
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM