判断该Form是否已经Load:Function FormLoaded(ByVal frm As Form) As Boolean
   Dim i As Integer
   
   FormLoaded = False
   For i = 0 To Forms.Count - 1
      If frm Is Forms(i) Then
         FormLoaded = True
         Exit For
      End If
   Next i
End Function
 

解决方案 »

  1.   

    怎么用法?
    FORMLOADED(窗体)出错啊。提示不匹配
      

  2.   

    比如 form1是你不知道是否已经打开的窗口
    If FormLoaded(form1) Then
       操作form1
    Else
       Msgbox("form1没打开")
    End If
      

  3.   

    我在BB窗口中用您提供的函数 FORMLOADED(AA)提示实时错误13,类型不匹配
    AA窗口已经打开,请指教
      

  4.   

     同志:就这一句啊:在BB的LOADFORM中调用
     FORMLOADED(AA)
    AA 和 BB都是属于AAA的子窗口!
    函数我复制—粘贴,总不会有错吧?
      

  5.   

    你可以用查找该窗口的名称(是Name,不是Caption)是否存在于所有已经LOAD的窗口之中,请看下面的函数:
    Function FindWin(ByVal strFormName  As String) As Boolean
      Dim frmForm As Form
      FindWin = False
      For Each frmForm in Forms
          If Trim(frmForm.Name)=Trim(strFormName) Then
            FindWin = True
            Exit For
          End If
      Next frmForm
    End Function
    如果FindWin=True表示该窗口已经加载,否则没有加载!
      

  6.   

    使用App.PrevInstance属性可以判断程序是否在运行.
      

  7.   

    唉。这样
    Public Function EnumProc(ByVal app_hwnd As Long, ByVal lParam As Long) As Boolean '遍查主窗口
    Dim buf As String * 1024
    Dim length As Long
        
        length = GetWindowText(app_hwnd, buf, Len(buf))
        title = Left$(buf, length)    If InStr(title, "OICQ用户登录") Then '判断是否为 OICQ 窗口
            是这个窗体的话
        End If
        If title <> "" Then
            If InStr(titleall, title) Then
                EnumProc = 1
        Else
         XXXX
    End If
    End If
    EnumProc = 1end function