zoukankan      html  css  js  c++  java
  • vb.net 防止MDI子窗体被多次实例化的四种方法

    方法一
            可能没有什么实用性,只适合简单项目:
           Dim frmTmp As ClassForm        "实现已经设计好了一个称作(类名为)ClassForm的表单       
           frmTmp = New ClassForm          "在此定义它的一个实例

            frmTmp.ShowDialog()                "作为模式窗体显示
    这样在当前窗体没有关闭以前,其他form上的菜单按钮都不可用,巧妙使用可以避免多次实例化的问题。
    方法二
              只适用于,form不是特别多,且多运行时占用内存没有特殊要求的场合
             在项目运行时,分别定义每个可能用到的form的实例,但不显示,只有在需要显示的时候每次调用,x.show(x为想显示的form实例名),关闭的时候使用x.hide即可。
    方法三
            分别定义每个需要显示的form类的全局变量,在实际显示窗体前使用以下代码:
          If frm Is Nothing OrElse frm.IsDisposed Then
                frm = New Form1
                frm.Show()
            Else
                frm.Activate()
            End If
    方法四
           本方法特别适用于多文档界面:
            Dim frmTmp As Form
          "搜索每个MDI子窗体一般打开的子窗体不会太多,所以不存在速度问题
           For Each frmTmp In Me.MdiChildren
              "if 找到你想显示的ClassFrm窗体
                If TypeOf frmTmp Is ClassFrm Then
                    frmTmp.Activate()
                    Exit Sub
                End If
            Next
            "如果MDI子窗体中没有你想显示的窗体
            "则定义新的实例,并显示。
            frmTmp = New ClassFrm400
            frmTmp.MdiParent = Me
            frmTmp.Show()
  • 相关阅读:
    Luogu P2480 [SDOI2010]古代猪文 卢卡斯+组合+CRT
    luogu 3806 【模板】点分治
    poj 1741 Tree(树的点分治)
    置换群(本蒟蒻瞎BB的)(未完)
    uva 1153 顾客是上帝(贪心)
    关于区间的贪心问题
    uva 1615 高速公路(贪心,区间问题)
    uva 1614奇怪的股市(归纳法证明,贪心)
    uva11491 奖品的价值(贪心)
    uva12545 比特变换器(贪心)
  • 原文地址:https://www.cnblogs.com/wzyexf/p/547202.html
Copyright © 2011-2022 走看看