LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

VB重复打开子窗体

admin
2013年12月3日 0:33 本文热度 5456
VB防止重复打开子窗体
还有怎么获取最近打开的子窗体
VB不是VB.net

该文章在 2013/12/3 0:33:48 编辑过

全部评论3

admin
2013年12月3日 0:33
VB.NET中,在访问窗体之前,你必须进行窗体实例化,然后才能打开,如:Dim frm1 As New Form1' frm1.MdiParent = Me ' 定义MDI子窗体frm.Show() '打开窗体如果在项目中有多处代码访问同一窗体,都这样的话,则会创建出
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

该评论在 2013/12/3 0:33:53 编辑过
admin
2013年12月3日 0:34
Dim objAllFrom As Form
    For Each objallform In Forms
      If objAllFrom.Name = "窗体名称"  Then
        处理方法
      Else
      End If
    Next

该评论在 2013/12/3 0:34:08 编辑过
admin
2013年12月3日 0:55
其中的方法就是打开前 卸载所有已打开的窗体
给你个过程 你自己调用吧~
'卸载所有窗体
Public Sub UnloadAllForms(Optional sFormName As String = "")
    Dim Form As Form
    For Each Form In Forms
        If Form.Name <> sFormName Then
            Unload Form
            Set Form = Nothing
        End If
    Next Form
End Sub
 

该评论在 2013/12/3 0:55:22 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved