转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
[初学VB.NET]如何防止重复打开MDI子窗体         ★★★★

[初学VB.NET]如何防止重复打开MDI子窗体

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1712 更新时间:2009/4/23 18:59:56
VB.NET中,在访问窗体之前,你必须进行窗体实例化,然后才能打开,如:
           Dim frm1 As New Form1
          '''' frm1.MdiParent = Me '''' 定义MDI子窗体
           frm.Show() ''''打开窗体

如果在项目中有多处代码访问同一窗体,都这样的话,则会创建出不同的实例。如重防止重复打开MDI子窗体的实例呢?下面的代码可以帮你完成:

Dim frm1As New Form1
CheckForm(frm1, "Form1")

''''***************************************************************************** ''''*过程名称:CheckForm
''''*参数说明:MDIChildForm——需检测的窗体;MDIChildFormName ——检测窗体的名字
''''*功能说明:首先检测是否有MDI子窗体,如果没有,则创该MDI子窗体的窗体实例
''''*                    如果有,则检测当中有没有其窗体实例,有则激活;没有则创建其窗体实例
''''*****************************************************************************
Private Sub CheckForm(ByVal MDIChildForm As Form, ByVal MDIChildFormName As String)
         If Me.MdiChildren.Length < 1 Then
              ''''如果没有任何一个MDI子窗体,则创该MDI子窗体的窗体实例
            ShowForm(MDIChildForm )
            Exit Sub
        Else
             Dim x As Integer
             Dim frmyn As Boolean
             For x = 0 To (Me.MdiChildren.Length) - 1
                   Dim tempChild As Form = CType(Me.MdiChildren(x), Form)
                   If tempChild.Name = MDIChildFormName Then
                       frmyn = True
                      ''''检测到有该MDI子窗体,设为TRUE 并退出循环
                      Exit For
                   Else
                      frmyn = False
                   End If
            Next
           If frmyn = False Then
              ''''在打开的窗体中没检测到则新建
                ShowForm(tempForm)
            Else
               ''''在打开的窗体中检测到则激活
                Dim MDIChildFrm As Form = CType(Me.MdiChildren(x), Form)
                MDIChildFrm .Activate()
              End If
         End If
End Sub

''''**************************************************
''''*过程名称:ShowForm
''''*参数说明:MDIChildForm ——需创建实例的窗体
''''*功能说明:创建窗体实例
''''**************************************************
Private Sub ShowForm(ByVal MDIChildForm As Form)
           Dim MDIChildFrm  As Form = MDIChildForm
           MDIChildFrm.MdiParent = Me '''' 定义MDI子窗体
           MDIChildFrm.Show() ''''打开窗体
End Sub


[VB.NET程序]vb.net 中MDI子窗体对其父窗体属性的获取与修改  [VB.NET程序][VB.NET]浅谈MDI窗体的多窗体编程2
[VB.NET程序]vb.net 防止MDI子窗体被多次实例化的四种方法  [Delphi程序]Delpi在MDI窗口中显示图形控件及指定背景的解决方…
[Delphi程序]在delphi中,如何把MDI工作区的粗边框去掉  
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台