CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

怎么获得一个窗体是否已加载?

楼主itcoco(椰子)2004-09-02 10:48:19 在 VB / 基础类 提问

怎么样得知一个窗体   是否   load   或者unload么?  
  问题点数:20、回复次数:13Top

1 楼huangjianyou(小健)回复于 2004-09-02 10:52:56 得分 0

'判断一个窗体是否已Open  
  Public   Function   IsOpen(ByVal   FormName   As   Form)   As   Boolean  
  On   Error   GoTo   Err  
          Dim   I   As   Integer  
          IsOpen   =   False  
          For   I   =   0   To   Forms.Count   -   1  
                  If   UCase(Forms(I).Name)   =   UCase(FormName.Name)   Then  
                          IsOpen   =   True  
                          Exit   For  
                  End   If  
          Next  
          Exit   Function  
  Err:  
          IsOpen   =   False  
  End   Function  
   
  ^_^Top

2 楼hhjjhjhj(大头)(http://office.9zp.com)回复于 2004-09-02 11:50:19 得分 2

楼上的,第二次以后永远是true了。Top

3 楼artoksxb(进取人生)回复于 2004-09-02 11:55:43 得分 0

upTop

4 楼huangjianyou(小健)回复于 2004-09-02 11:56:35 得分 8

这样吧,改一下:  
  'FormIsOpen  
  Public   Function   IsOpen(ByVal   FormName   As   Form,   ByVal   strFormName   As   String)   As   Boolean  
  On   Error   GoTo   mErr  
          Dim   I   As   Integer  
          IsOpen   =   False  
          For   I   =   0   To   Forms.Count   -   1  
                  If   UCase(Forms(I).Name)   =   UCase(strFormName)   Then  
                          IsOpen   =   True  
                          Exit   For  
                  End   If  
          Next  
          Exit   Function  
  mErr:  
          IsOpen   =   False  
  End   Function  
   
  ^_^Top

5 楼huangjianyou(小健)回复于 2004-09-02 11:57:40 得分 0

//楼上的,第二次以后永远是true了。  
   
  这个问题一早就发现了,因为在函数执行时把窗体Load了出来,但没显示。  
   
  ^_^  
  Top

6 楼tztz520(午夜逛街)回复于 2004-09-02 12:09:10 得分 10

 
  Public   Declare   Function   FindWindow   Lib   "user32"   Alias   "FindWindowA"   (ByVal   lpClassName   As   String,   ByVal   lpWindowName   As   String)   As   Long  
   
   
  Public   Function   IsShow(FormName   As   String)   As   Boolean'参数FormName   是窗体的标题名称  
          Dim   lR   As   Long  
          lR   =   FindWindow(vbNullString,   FormName)  
          If   lR   <>   0   Then  
                  IsShow   =   True    
          Else  
                  IsShow   =   False   '  
          End   If  
  End   FunctionTop

7 楼sanyou98(sanyou98)回复于 2004-09-02 12:10:20 得分 0

upTop

8 楼itcoco(椰子)回复于 2004-09-02 14:33:29 得分 0

午夜逛街的方法   可以  
  其他的都不行   因为只要引用了窗体的属性   比如form.name     就相当于form.load   所以第二次再判断此窗体是否已加载     就错了  
  不知我说的对否?  
   
  Top

9 楼gxsun(小毛猪)回复于 2004-09-02 14:36:38 得分 0

用FindWindow函数吧Top

10 楼huangjianyou(小健)回复于 2004-09-02 15:11:14 得分 0

//其他的都不行  
   
  我第二个函数一定行,调用时这样调用:  
  isopen(formname,"FormName")  
   
  ^_^Top

11 楼daweileo(大尾Leo)回复于 2004-09-02 17:30:22 得分 0

huangjianyou(小健)   的第二个函数我看可以!  
  upTop

12 楼itcoco(椰子)回复于 2004-09-02 17:33:04 得分 0

我刚试了   可以     只是不知道为什么加上""就可以   或者是实现用一个字符串代替已知的窗体的名字   从而避免使用窗体的属性而加载窗体了么?  
   
  另外   isopen()这个过程为什么要两个参数呢   我觉得第一个formname   没有必要     不知道我说的对否Top

13 楼huangjianyou(小健)回复于 2004-09-02 17:39:07 得分 0

哦,因为我是从我的程序拿下来的,所以没修改,因为我还要在里面做一些东西,我删除掉了。  
   
  ^_^Top

相关问题

  • vb中如何判断窗体是否已经加载?
  • 如何判断一个窗体是否正在加载
  • 高分相赠!!!怎样判断一个窗体是否加载?
  • 怎样判断窗体是否已经加载?
  • 怎么判断一个窗体是否被加载?
  • 窗体加载时,某一控件获得焦点!!!
  • 窗体加载问题
  • 如何在DLL中获得加载该DLL的主窗体句柄?急
  • c#中asp.net窗体 是否能象 winForm 窗体用show加载从而实现动态加载WEB窗体!或有他法实现动态加载.aspx的方法?
  • 如何动态加载窗体?

关键词

  • 函数
  • 窗体
  • isopen
  • formname
  • 加载
  • isshow
  • ucase
  • 是否
  • lr
  • byval

得分解答快速导航

  • 帖主:itcoco
  • hhjjhjhj
  • huangjianyou
  • tztz520

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo