fm 是当前所在的form,sm是你所要显示的通用form
在通用form上有一个公用变量flag,当通用form执行一个操作时,对flag置同的值,如
2表示确定键按下,3表示取消键按下等等。
Public Sub RunSubForm(fm As Form, sm As Form)
With sm
If Not fm Is Nothing Then
fm.Enabled = False
End If
Set osm = sm
Set ofm = fm
.Show
RaiseEvent PreSet(sm)
.flag = 0
Do While .flag = 0
DoEvents
Select Case .flag
Case Is = 0
Case Is = 2
RaiseEvent OkPress(sm)
Case Is = 3
RaiseEvent CancelPress(sm)
Case Is = 1
RaiseEvent Com1Press(sm)
Case Is = 4
RaiseEvent com2press(sm)
Case Else
RaiseEvent comnpress(sm, .flag - 4)
End Select
Loop
Unload sm
If Not fm Is Nothing Then
fm.Visible = True
fm.Enabled = True
fm.SetFocus
End If
End With
End Sub