0

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 

enter image description here

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.

+0

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. –

+0

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

Répondre

0

Vous devez ajouter un événement de contrôle SetProperty qui définit la propriété sur la nouvelle valeur. Cela indique à l'interface utilisateur de mettre à jour les conditions qui référencent la propriété modifiée (ou le texte incluant la propriété modifiée, etc.). Windows Installer ne surveille pas d'autres moyens de modification de la propriété. Voir mes réponses liées: