VB.NET MDI子窗体实例化问题解决方案

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()  

文章名称:VB.NET MDI子窗体实例化问题解决方案
当前链接:http://www.csdahua.cn/qtweb/news28/378928.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网