一个多文档窗体的主窗体下有一状态栏有一面板用于显示当前操作的子窗体名称
:statusbar1.panpel(1).text="当前操作的子窗体:" & str
当同时打开二个窗体后,都最小化时应显示:当前操作的子窗体:无
当激活后又要马上显示窗体名称,这两个问题怎样获知?

解决方案 »

  1.   

    常规的做法,你可在每个子窗体的Activate中写代码
     If Me.WindowState <> vbMinimized Then
       MDIForm1.status.panel(0).text = Me.Name
     Else
       MDIForm1.status.panel(0).text = "无"
     End If
      

  2.   

    好像有MDI.ActiveForm或类似的返回当前子窗口的属性。
    自己看看。
      

  3.   

    所有子窗体的resize事件调用一个公共函数,如果最小华,公共变量-1,相反+1。如果公共变量<>0,MDIForm1.ActiveForm.Caption将返回当前活动窗口名称;如果公共变量=0,返回“无”module:
    Public Function MyMDIActiveForm(MyResize As Boolean) As String
    If MyResize = True Then
        MyFormCount = MyFormCount + 1
    Else
        MyFormCount = MyFormCount - 1
    End If
    If MyFormCount <> 0 Then
        MyMDIActiveForm = MDIForm1.ActiveForm.Caption
    Else
        MyMDIActiveForm = "null"
    End If
    End FunctionMdiform:
    Public Sub MyGetActiveForm(MyResize As Boolean)
    MsgBox MyMDIActiveForm(MyResize)
    End SubChildform:
    Private Sub Form_Resize()
    If Me.ScaleHeight <> 0 Then
        MDIForm1.MyGetActiveForm True
    Else
        MDIForm1.MyGetActiveForm False
    End If
    End Sub