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

热情的易县人

热情的易县人

2016-01-29 13:23

[初学VB.NET]如何防止重复打开MDI子窗体,[初学VB.NET]如何防止重复打开MDI子窗体
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
展开更多 50%)
分享

猜你喜欢

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

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

[初学VB.NET]数据绑定

电脑网络
[初学VB.NET]数据绑定

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VB.NET 拖动无边框的窗体

电脑网络
VB.NET 拖动无边框的窗体

VB.NET窗体操作技巧两则

vb
VB.NET窗体操作技巧两则

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

初学VB.NET连接SQL数据库

电脑网络
初学VB.NET连接SQL数据库

VB.Net基本语句

编程语言 网络编程
VB.Net基本语句

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PHP应用技巧:如何将代码中的通知和警告删除

PHP应用技巧:如何将代码中的通知和警告删除

Flash MX2004入门与进阶实例——绘图基础(14)

Flash MX2004入门与进阶实例——绘图基础(14)
下拉加载更多内容 ↓