最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

其代碼如下所示:

public Form1()
{
  InitializeComponent();
  //將Form1設(shè)置為MDI窗體,當(dāng)然在Form1的IsMdiContainer屬性頁(yè)可以設(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()這個(gè)方法在哪里呢。當(dāng)然是在FrmChildren子窗體里面寫

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

第二種方法:

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

private void tsmiOpenWindow_Click(object sender, EventArgs e)
{ 

#region 方法二Application收集打開的窗體,用索引器來(lái)尋找,就是窗體的Name屬性
//方法二.如果沒有Name為FrmChildren的子船體,實(shí)例化創(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)試運(yùn)行一下本文所述示例,相信會(huì)有不小的收獲。

相關(guān)文章

  • C#事件管理器如何清空所有監(jiān)聽詳解

    C#事件管理器如何清空所有監(jiān)聽詳解

    這篇文章主要給大家介紹了關(guān)于C#事件管理器如何清空所有監(jiān)聽的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • C#中關(guān)于可空類型的小知識(shí)

    C#中關(guān)于可空類型的小知識(shí)

    這篇文章主要介紹了C#中關(guān)于可空類型的小知識(shí),本文講解可空類型運(yùn)算的小技巧,需要的朋友可以參考下
    2015-04-04
  • C#排序算法之堆排序

    C#排序算法之堆排序

    這篇文章主要為大家詳細(xì)介紹了C#排序算法之堆排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • C#實(shí)現(xiàn)二叉排序樹代碼實(shí)例

    C#實(shí)現(xiàn)二叉排序樹代碼實(shí)例

    今天小編就為大家分享一篇關(guān)于C#實(shí)現(xiàn)二叉排序樹代碼實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • C# 使用PictureBox實(shí)現(xiàn)圖片按鈕控件的示例步驟

    C# 使用PictureBox實(shí)現(xiàn)圖片按鈕控件的示例步驟

    這篇文章主要介紹了C# 使用PictureBox實(shí)現(xiàn)圖片按鈕控件的示例步驟,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-02-02
  • c# Base關(guān)鍵字的使用

    c# Base關(guān)鍵字的使用

    c# Base關(guān)鍵字的使用示例代碼,大家可以參考下用法。
    2009-07-07
  • Unity Blend Tree動(dòng)畫混合樹使用入門教程

    Unity Blend Tree動(dòng)畫混合樹使用入門教程

    這篇文章主要為大家詳細(xì)介紹了Unity Blend Tree動(dòng)畫混合樹使用入門教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Unity實(shí)現(xiàn)微信聊天框界面

    Unity實(shí)現(xiàn)微信聊天框界面

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)微信聊天框界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C# ArrayList、HashSet、HashTable、List、Dictionary的區(qū)別詳解

    C# ArrayList、HashSet、HashTable、List、Dictionary的區(qū)別詳解

    這篇文章主要介紹了C# ArrayList、HashSet、HashTable、List、Dictionary的區(qū)別的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要朋友們參考下。
    2019-08-08
  • C# .NET實(shí)現(xiàn)掃描識(shí)別圖片中的文字

    C# .NET實(shí)現(xiàn)掃描識(shí)別圖片中的文字

    本文以C#及VB.NET代碼為例,介紹如何掃描并讀取圖片中的文字。文中的示例代碼介紹詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12

最新評(píng)論

循化| 济宁市| 乐平市| 永嘉县| 阆中市| 上思县| 扎囊县| 夏河县| 广德县| 西乌珠穆沁旗| 昌宁县| 洞头县| 广南县| 株洲县| 阿勒泰市| 峡江县| 延边| 五原县| 东丽区| 南宫市| 新绛县| 罗城| 会理县| 河西区| 抚松县| 社旗县| 新巴尔虎右旗| 金华市| 米脂县| 进贤县| 遵化市| 临漳县| 酉阳| 北辰区| 高阳县| 大名县| 河曲县| 中阳县| 漾濞| 易门县| 沙田区|