宝宝淹脖子香油管用吗:form操作

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 22:02:30
form操作 Public Function NewFormInstance(ByVal strFormKey As String) As Form
‘##BD 根据Form的关键字新建一个Form的实例
‘##PD strFormKey [I] 要新建的Form的关键字
‘##RD 返回对应的Form对象
    Select Case strFormKey
        Case STR_FORM_NEW_REQUESTOFCANCEL, STR_FORM_DEL_REQUESTOFCANCEL, STR_FORM_SND_REQUESTOFCANCEL
            Set NewFormInstance = New frmRecallInHouse
        Case STR_FORM_QUERYCURR, STR_FORM_QUERYCOUNTRY, STR_FORM_QUERYUNIT, STR_FORM_QUERYDUTYMODE, STR_FORM_QUERYNEWRATE, _
            STR_FORM_QUERYDISTRICTCODE, STR_FORM_QUERYTRADEMODE, STR_FORM_QUERYTRAFMODE, STR_FORM_QUERYTRANSMODE, STR_FORM_QUERYCUTMODE, _
            STR_FORM_QUERYIEPORT, STR_FORM_QUERYUSETO, STR_FORM_QUERYHSUNIT, STR_FORM_QUERYTAXTYPE, STR_FORM_QUERYPACKAGEMODE
            Set NewFormInstance = New FrmSysCurrQuery
        Case STR_FORM_SRCOUT, STR_FORM_SRCOUT_MODIFY
            Set NewFormInstance = New frmOutSource
        Case STR_FORM_PRODUCTDOMESTIC, STR_FORM_PRODUCTDOMESTIC_MODIFY
            Set NewFormInstance = New frmProductDomesticDetail
        Case STR_FORM_STUFFOUT, STR_FORM_STUFFOUT_MODIFY
            Set NewFormInstance = New frmStuffOut
    End Select
End FunctionPublic Function IsFormLoaded(ByRef frmIn As Form) As Boolean
‘##BD 判断一个Form是否已经Load了
‘##PD frm [I] 要判断的Form
‘##RD 已经Load返回True,没有Load返回False
    Dim frm As Form
   
    For Each frm In Forms
        If frmIn Is frm Then
            IsFormLoaded = True
            Exit For
        End If
    Next
End FunctionPublic Function GetFormInstance(ByVal strFormKey As String) As Form
‘##BD 根据Form的关键字返回全局唯一的一个实例
‘##PD strFormKey [I] 关键字
‘##RD 返回全局唯一的一个Form实例,保证一个关键字由且只有一个实例存在
    Dim frm As Form
   
    If mclnGlobalForms Is Nothing Then
        ‘集合为空,初始化集合已用来保存Form的实例
        Set mclnGlobalForms = New Collection
        ‘集合为空,肯定不存在该Form的任何实例
        Set frm = NewFormInstance(strFormKey)
        ‘把对象加入到全局Form集合中
        mclnGlobalForms.Add frm, strFormKey
    Else
        ‘先判断是否已经有实例存在了
        If ExistItem(strFormKey, mclnGlobalForms) Then
            Set frm = mclnGlobalForms(strFormKey)
        Else
            ‘不存在该Form的任何实例
            Set frm = NewFormInstance(strFormKey)
            ‘把对象加入到全局Form集合中
            mclnGlobalForms.Add frm, strFormKey
        End If
    End If
    ‘返回
    Set GetFormInstance = frm
    Set frm = Nothing
End FunctionPublic Function OpenForm(ByVal strFormKey As String)
‘##BD 根据Form的关键字显示对应的Form
‘##PD strFormKey [I] Form关键字
    Dim frmInst As Form
    ‘先取得与strFormKey对应的唯一实例
    Set frmInst = GetFormInstance(strFormKey)
    ‘判断Form是否已经Load了,如果已经Load,直接显示即可
    If IsFormLoaded(frmInst) Then
        frmInst.Show
        frmInst.SetFocus
    Else
        ‘下面来根据不同的FormKey用不同的方式打开
        frmInst.OpenForm strFormKey
    End If
    ‘释放对对象的引用
    Set frmInst = Nothing
End FunctionPublic Function OpenFormWithString(ByVal strFormKey As String, Optional strPara As String)
‘##BD 根据Form的关键字显示对应的Form
‘##PD strFormKey [I] Form关键字
‘##PD strPara [I] 传递给form的参数    Dim frmInst As Form
    ‘先取得与strFormKey对应的唯一实例
    Set frmInst = GetFormInstance(strFormKey)
    ‘判断Form是否已经Load了,如果已经Load,直接显示即可
    If IsFormLoaded(frmInst) Then
        frmInst.Show
        frmInst.SetFocus
    Else
        ‘strPara是form打开需要的参数
        frmInst.OpenForm strFormKey, strPara
    End If
    ‘释放对对象的引用
    Set frmInst = Nothing
End FunctionPublic Function ReleaseForm(ByVal strFormKey As String)
‘##BD 根据Form的关键字释放对应的Form
‘##PD strFormKey [I] Form关键字
    Dim frmInst As Form
    ‘先取得与strFormKey对应的唯一实例
    If ExistItem(strFormKey, mclnGlobalForms) Then
        Set frmInst = mclnGlobalForms(strFormKey)
   
        ‘判断Form是否已经Load了,如果已经Load,直接显示即可
        If IsFormLoaded(frmInst) Then
            Unload frmInst
        End If
    End If
    ‘释放对对象的引用
    Set frmInst = Nothing
End Function
s