设一个全局变量,Form_Load时置为真,Form_Unload时置为假,判断此变量即可。

解决方案 »

  1.   

    也可以通过Froms来判断。
    for i = Forms.Count - 1 To 1 Step -1
        if forms(i).name = "frm???" then
             msgbox "窗体已经加载"
             exit for
        else
             msgbox "窗体尚未加载"
        endif
    Next
      

  2.   

    是本程序的窗口吗,是的话楼上的方法就可以,不是的话就要用API了。
    假如知道该窗体的名称,则可以
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    hwnd=findwindow(vbnullstring,windowname)来获得窗口句柄,如hwnd=-1则没有该窗口。
      

  3.   

    只有你引用到窗口的属性,VB总会加载其到内存
    所以就算某一窗口刚刚关闭过(Unload frm)
    如果使用
    MsgBox frm.hWnd测试这个窗口是否有效,则一定是一个有效值
      

  4.   

    其实,只有某窗口被引用,它的引用次数总会加1
    如果某窗口从来打开过,但是使用到了它的对象变量,它的引用次数就会加1测试
    新建一个工程,在这个工程里一共创建两个FORM,一个是默认的FORM1,另一个是FORM2
    在FORM1中添加一个COMMANDBUTTON,在COMMANDBUTTON的CLICK事件中编写如下代码
    Set Form2 = Nothing
    MsgBox Form2 Is Nothing '结果总是为False,因为这条语句已经引用到了Form2