Je travaille sur un projet de base MSI installshield dans installshield 2016. J'ai un champ d'édition et une zone de texte dans l'étape de mon assistant. La zone de texte est en fait une étiquette d'erreur. Visible
La propriété du contrôle de zone de texte est initialement définie sur false
. Après avoir mis une entrée dans le champ d'édition, l'utilisateur appuie sur le bouton Next >
à l'étape de l'assistant. Nous effectuons quelques validations sur l'entrée utilisateur, puis définissons une propriété privée IsUserInputValid
à 1 si l'entrée de l'utilisateur était valide. Valeur initiale de la propriété est IsUserInputValid
0. Valeur de HasValidationRun
drapeau est 0.Comment rafraîchir l'interface utilisateur de l'assistant dans l'assistant d'installation
maintenant dans la section comportement que j'ai ajouté un événement pour afficher la zone modifier le texte de contrôle comme ci-dessous:
HasValidationsRun = 1 AND IsUserInputValid=0
Après avoir cliqué sur le bouton Next >
, l'étiquette d'erreur n'apparaît pas. Mais si je change l'entrée qui passe les validations alors l'assistant passe à l'étape suivante et juste avant que la transition n'arrive, cette étiquette devient visible pendant une seconde. Je ne sais pas pourquoi l'interface utilisateur ne s'est pas rafraîchie toute seule si j'ai défini correctement la condition pour l'événement Show
.
Comment 'IsUserInputValid' et 'HasValidationRun' sont-ils définis? Je suppose que c'est dans une action personnalisée, plutôt que dans un événement de contrôle SetProperty. Si oui, c'est le problème, et je peux écrire une réponse si personne ne me bat dessus. –
Oui. La variable 'IsUserInputValid' stocke la valeur entière renvoyée par une action personnalisée. J'appelle cette action personnalisée sur le clic du bouton 'Suivant>'. – RBT