首先在模块中定义 public MDIForm fMain在Sub Main()中 Sub Main() set fMain = new MDIForm fMain.show End Sub然后子窗体可以通过; fMain.Caption等操作父窗体
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
上面的定义写错了(java写的多了)改为: public fMain As MDIForm不要直接引用窗体名称 比如有一个frmMain窗体,不要写 frmMain.show 这样vb会自己创建一个该窗体的实例,且其他窗体无法引用它正确的方法是: 在模块中定义: public fMain As frmMain在需要的地方 set fMain = new frmMain fMain.show
public MDIForm fMain在Sub Main()中
Sub Main()
set fMain = new MDIForm
fMain.show
End Sub然后子窗体可以通过;
fMain.Caption等操作父窗体
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
public fMain As MDIForm不要直接引用窗体名称
比如有一个frmMain窗体,不要写
frmMain.show
这样vb会自己创建一个该窗体的实例,且其他窗体无法引用它正确的方法是:
在模块中定义:
public fMain As frmMain在需要的地方
set fMain = new frmMain
fMain.show
直接在MDIFORM代码中加入相关代码
不过要加上 MAINFORM.StatusBarMain.Panels 表示执行的是对主窗体的状态栏控件的操作;