Vérifier si une boîte de dialogue est ouverte
Il est utile de savoir si une boîte de dialogue est ouverte avant d’effectuer certaines actions. Par exemple :
-
Les boîtes de dialogue n’ont pas besoin d’être rafraîchies, mais les grilles d’affichage, oui.
-
Certains événements du flux de travail ne sont pas autorisés lorsqu’une boîte de dialogue est ouverte.
L’événement DialogBox peut être utilisé pour suivre la visibilité des boîtes de dialogue.
Recommandations
Pour éviter des résultats imprévisibles, déterminez si une boîte de dialogue est ouverte avant que des événements ne se produisent.
L’exemple suivant vérifie si la boîte de dialogue de création d’un nouveau défaut est ouverte. Ceci est pertinent car le champ BG_USER_01 ne peut être modifié que pour un nouveau défaut. Si une autre boîte de dialogue est ouverte, par exemple la boîte de dialogue permettant de modifier un défaut, le champ BG_USER_01 ne peut pas être modifié.
Exemple :
' 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

