VB.NET 如何防止重复打开MDI子窗体
来源:互联网 发布:电脑上测试 php网页 编辑:程序博客网 时间:2024/05/17 01:07
VB.NET中,在访问窗体之前,你必须进行窗体实例化,然后才能打开,如:
Dim frm1 As New Form1
' frm1.MdiParent = Me ' 定义MDI子窗体
frm.Show() '打开窗体
如果在项目中有多处代码访问同一窗体,都这样的话,则会创建出不同的实例。如重防止重复打开MDI子窗体的实例呢?下面的代码可以帮你完成:
Dim frm1As New Form1
CheckForm(frm1, "Form1")
'*****************************************************************************
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
'*参数说明: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]如何防止重复打开MDI子窗体
- VB.NET 如何防止重复打开MDI子窗体
- 在WinForm中,如何实现MDI窗体及防止重复打开子窗体
- 如何使MDI子窗体不重复被打开
- 如何使MDI子窗体不重复被打开
- 如何使MDI子窗体不重复被打开
- [代码]MDI子窗体不重复打开
- 限制MDI子窗体重复打开:
- vb.net 防止MDI子窗体被多次实例化的四种方法
- [VB.NET]MDI窗体
- c#防止打开重复子窗体
- C# Winform 防止子窗体重复打开
- 如何实现MDI窗体不重复打开同一个子窗体?
- 如何实现MDI窗体不重复打开同一个子窗体?
- VB 遍历已打开的MDI子窗体
- MDI设置父窗体,并设置子窗体铺满父窗体,不重复打开子窗体
- VB.NET章鱼哥出品—如何解决MDI子窗体被父窗体中的控件覆盖的问题
- C#限制MDI子窗体重复打开——C#判断窗体是否已经打开
- 严格的三级联动日期下拉菜单
- 个人知识管理的29个原则
- 分享:MagicBox - 展示一组图片的新控件
- sql setcatalog作用
- 图解m2eclipse使用
- VB.NET 如何防止重复打开MDI子窗体
- 效果直逼flash的Div+Css+Js菜单
- Struct2获取response和request的方法
- F#程序设计-函数式编程之用函数风格来编程(1)
- 解析Myeclipse项目下的.classpath文件
- Visual C++集成开发环境创建 C语言工程与调试入门
- 薪水、理想 难以取舍啊
- 数据结构 课程设计 学生成绩管理系统
- 【翻译】你应该了解的三种广域网协议:HDLC、PPP、Frame-Relay