欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#設(shè)置MDI子窗體只能彈出一個的方法

 更新時間:2014年08月19日 08:51:08   投稿:shichen2014  
這篇文章主要介紹了C#設(shè)置MDI子窗體只能彈出一個的方法,很實用的技巧,需要的朋友可以參考下

Windows程序設(shè)計中的MDI(Multiple Document Interface)官方解釋就是所謂的多文檔界面,與此對應(yīng)就有單文檔界面 (SDI), 它是微軟公司從Windows 2.0下的Microsoft Excel電子表格程序開始引入的,Excel電子表格用戶有時需要同時操作多份表格,MDI正好為這種操作多表格提供了很大的方便,于是就產(chǎn)生了MDI程序。

新建一個WindowForm程序。得到一個窗體作為我們父窗體Parent。拖入一個menustrip空間。在新建一個窗體FrmChildren作為我們子窗體,界面如下圖所示:

其代碼如下所示:

public Form1()
{
  InitializeComponent();
  //將Form1設(shè)置為MDI窗體,當(dāng)然在Form1的IsMdiContainer屬性頁可以設(shè)置
  this.IsMdiContainer = true;
}

在menustrip打開子窗體的事件代碼如下:

private void tsmiOpenWindow_Click(object sender, EventArgs e)
{  
  FrmChildren child = FrmChildren.GetWindow();//調(diào)用方法
  child.MdiParent = this;//設(shè)置child的父窗體為當(dāng)前窗體
  child.Show();
  
}

GetWindow()這個方法在哪里呢。當(dāng)然是在FrmChildren子窗體里面寫

 public partial class FrmChildren : Form
  {
    private FrmChildren() //由 public FrmChildren改為 private FrmChildren
    {
      InitializeComponent();
    }
    static FrmChildren fc = null; 創(chuàng)建一個靜態(tài)對象
    public static FrmChildren GetWindow()
    {  //當(dāng)子窗體沒有開啟或者已經(jīng)釋放。就可以創(chuàng)建新窗體
      if (fc==null||fc.IsDisposed)
      {
        fc = new FrmChildren();
      }
      return fc;
    }
  }

第二種方法:

這種方法個人覺得很簡單。直接在在menustrip打開子窗體的事件下面寫就ok了

private void tsmiOpenWindow_Click(object sender, EventArgs e)
{ 

#region 方法二Application收集打開的窗體,用索引器來尋找,就是窗體的Name屬性
//方法二.如果沒有Name為FrmChildren的子船體,實例化創(chuàng)建。和之前的正規(guī)做法沒有什么差別,只是多了判斷。
if (Application.OpenForms["FrmChildren"] == null)
{
FrmChildren child = new FrmChildren();
child.MdiParent = this;
child.Show();
}
else//有Name為FrmChildren的子船體,就直接show()
{
Application.OpenForms["FrmChildren"].Show();
}
#endregion
}

感興趣的朋友可以調(diào)試運行一下本文所述示例,相信會有不小的收獲。

相關(guān)文章

  • 使用windows控制臺調(diào)試服務(wù)的方法

    使用windows控制臺調(diào)試服務(wù)的方法

    這篇文章主要介紹了使用windows控制臺調(diào)試服務(wù)的方法,需要的朋友可以參考下
    2014-02-02
  • C#程序中使用LINQ to XML來查詢XML格式數(shù)據(jù)的實例

    C#程序中使用LINQ to XML來查詢XML格式數(shù)據(jù)的實例

    這篇文章主要介紹了C#程序中使用LINQ to XML來查詢XML格式數(shù)據(jù)的實例,LINQ to XML是.NET框架中集成的接口,可以將XML數(shù)據(jù)放到內(nèi)存中進行處理,需要的朋友可以參考下
    2016-03-03
  • C#操作Access通用類實例

    C#操作Access通用類實例

    這篇文章主要介紹了C#操作Access通用類,實例分析了C#操作access的各種常見技巧,非常具有實用價值,需要的朋友可以參考下
    2015-06-06
  • C#泛型概念的簡介與泛型的使用

    C#泛型概念的簡介與泛型的使用

    今天小編就為大家分享一篇關(guān)于C#泛型概念的簡介與泛型的使用,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • C#實現(xiàn)系統(tǒng)桌面右下角彈框

    C#實現(xiàn)系統(tǒng)桌面右下角彈框

    這篇文章主要為大家詳細介紹了C#如何實現(xiàn)系統(tǒng)桌面右下角彈框,文中的示例代碼講解詳細,對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • Unity時間戳的使用方法

    Unity時間戳的使用方法

    這篇文章主要為大家詳細介紹了Unity時間戳的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • c# 文件壓縮zip或?qū)ip文件解壓的方法

    c# 文件壓縮zip或?qū)ip文件解壓的方法

    下面小編就為大家分享一篇c# 文件壓縮zip或?qū)ip文件解壓的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • winform把Office轉(zhuǎn)成PDF文件

    winform把Office轉(zhuǎn)成PDF文件

    這篇文章介紹了winform把Office轉(zhuǎn)成PDF文件的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • DevExpress實現(xiàn)自定義GridControl中按鈕文字內(nèi)容的方法

    DevExpress實現(xiàn)自定義GridControl中按鈕文字內(nèi)容的方法

    這篇文章主要介紹了DevExpress實現(xiàn)自定義GridControl中按鈕文字內(nèi)容的方法,需要的朋友可以參考下
    2014-08-08
  • C#接口INotifyPropertyChanged使用方法

    C#接口INotifyPropertyChanged使用方法

    這篇文章介紹了C#接口INotifyPropertyChanged的使用方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01

最新評論