VB.NET MDI子窗体实例化问题解决方案
创始人
2024-06-20 09:20:45
0

VB.NET的出现帮助开发人员解决了以前很难实现的各种问题。下面大家就可以通过对VB.NET MDI子窗体在实际编写中遇到的实例化问题解决方法进行一个详细的了解,从而掌握这一问题的防范技巧。#t#

VB.NET MDI子窗体被多次实例化防范方法一

可能没有什么实用性,只适合简单项目:

  1. Dim frmTmp As ClassForm 
  2. "实现已经设计好了一个称作
    (类名为)ClassForm的表单   
  3. frmTmp = New ClassForm 
  4. "在此定义它的一个实例  
  5. frmTmp.ShowDialog() 
  6. "作为模式窗体显示 

这样在当前窗体没有关闭以前,其他form上的菜单按钮都不可用,巧妙使用可以避免多次实例化的问题。

VB.NET MDI子窗体被多次实例化防范方法二

只适用于,form不是特别多,且多运行时占用内存没有特殊要求的场合

在项目运行时,分别定义每个可能用到的form的实例,但不显示,只有在需要显示的时候每次调用,x.show(x为想显示的form实例名),关闭的时候使用x.hide即可。

VB.NET MDI子窗体被多次实例化防范方法三

分别定义每个需要显示的form类的全局变量,在实际显示窗体前使用以下代码:

  1. If frm Is Nothing OrElse 
    frm.IsDisposed Then  
  2. frm = New Form1  
  3. frm.Show()  
  4. Else  
  5. frm.Activate()  
  6. End If 

VB.NET MDI子窗体被多次实例化防范方法四

本方法特别适用于多文档界面:

  1. Dim frmTmp As Form  
  2. "搜索每个MDI子窗体一般打开的子
    窗体不会太多,所以不存在速度问题  
  3. For Each frmTmp In Me.MdiChildren  
  4. "if 找到你想显示的ClassFrm窗体  
  5. If TypeOf frmTmp Is ClassFrm Then  
  6. frmTmp.Activate()  
  7. Exit Sub  
  8. End If  
  9. Next  
  10. "如果MDI子窗体中没有你想显示的窗体  
  11. "则定义新的实例,并显示。  
  12. frmTmp = New ClassFrm400  
  13. frmTmp.MdiParent = Me 
  14. frmTmp.Show()  

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...