检查对话框是否打开

在执行某些操作之前跟踪某对话框是否打开是有用的。例如:

  • 对话框不需要刷新,但网格显示需要刷新。

  • 对话框打开时,某些工作流事件是不受允许的。

DialogBox 事件可用于跟踪对话框的可见性。

建议

为避免不可预知的结果,在任何事件发生之前,应确定对话框是否打开。

以下示例检查用于新建缺陷的对话框是否打开。这是有关系的,因为只能修改新缺陷的 BG_USER_01 字段。如果打开其他对话框,如用于编辑缺陷的对话框,则不能修改 BG_USER_01 字段。

示例:  

' Declare a global variable for each dialog box of interest
Dim NewDefectDialogIsOpen
' Initialize the global variable
NewDefectDialogIsOpen = False
Sub DialogBox(DialogBoxName, IsOpen)
    If DialogBoxName="New Bug" Then
        NewDefectDialogIsOpen = True
    Else
        NewDefectDialogIsOpen = False
    End If
End Sub
Function Bug_FieldCanChange(FieldName, NewValue)
' Initialize the function's return value to avoid
' unpredictable behavior.
Bug_FieldCanChange = True
' The BG_USER_01 field can only be modified for a new defect.
If FieldName="BG_USER_01" Then
    If NewDefectDialogIsOpen Then
        Bug_FieldCanChange = True
    Else
        Bug_FieldCanChange = False
    End If
End If
End Function

返回页首