在MDI窗体中,子窗体如何操纵父窗体中的控件。
比如在子窗体运行时,如何将提示信息写入父窗体的状态栏中?

解决方案 »

  1.   

    MDIForm1.StatusBar1.Panels.Add.Text = "test"
      

  2.   

    首先在模块中定义
    public MDIForm fMain在Sub Main()中
    Sub Main()
      set fMain = new MDIForm
      fMain.show
    End Sub然后子窗体可以通过;
    fMain.Caption等操作父窗体
      

  3.   

    Public Sub StatusBarForm(ByVal strForm As String, ByVal strTag As String) '用来在状态条上显示窗体名称
      On Error Resume Next
      MDIForm1.StatusBarMain.Panels("form").Text = strForm
      MDIForm1.StatusBarMain.Panels("tag").Text = strTag
    End Sub
    Private Sub cmdOk_GotFocus()
    On Error Resume Next
      Call StatusBarControl(Screen.ActiveControl.Name)
    '----------------
    End Sub
      

  4.   

    上面的定义写错了(java写的多了)改为:
    public fMain As MDIForm不要直接引用窗体名称
    比如有一个frmMain窗体,不要写
    frmMain.show
    这样vb会自己创建一个该窗体的实例,且其他窗体无法引用它正确的方法是:
    在模块中定义:
    public fMain As frmMain在需要的地方
    set fMain = new frmMain
    fMain.show
      

  5.   

    如果 MAINFORM是主窗体  ,  MDIFORM是子窗体
    直接在MDIFORM代码中加入相关代码
    不过要加上  MAINFORM.StatusBarMain.Panels  表示执行的是对主窗体的状态栏控件的操作;