0

I'm working on a basic MSI installshield project in installshield 2016. I've an edit field and text area on my wizard step. The text area is actually an error label. Visible property of the text area control is initially set to false.

After putting some input into the edit field user presses Next > button on the wizard step. We perform some validations on the user input and then set a private property IsUserInputValid to 1 if the user input was valid. Initial value of IsUserInputValid property is 0. Value of HasValidationRun flag is 0.

Now in the behavior section I've added an event to show the edit text area control as below:

HasValidationsRun = 1 AND  IsUserInputValid=0

enter image description here

After I click Next > button the error label doesn't show up. But if I change the input which passes the validations then wizard moves to the next step and just before the transition happens that label becomes visible for a second. I don't know why did the UI didn't refresh on its own if I've defined the condition for Show event properly.

RBT
  • 24,161
  • 21
  • 159
  • 240
  • How are `IsUserInputValid` and `HasValidationRun` set? I'm assuming it's in a custom action, rather than in a SetProperty Control Event. If so, that's the problem, and I can write up an answer if nobody beats me to it. – Michael Urman Apr 18 '17 at 12:31
  • Yes. `IsUserInputValid` variable stores the integer value returned from a custom action. I call that custom action on the click of `Next >` button. – RBT Apr 18 '17 at 13:01

1 Answers1

0

You need to add a SetProperty Control Event that sets the property to the new value. This tells the UI to update conditions that reference the changed property (or text including the changed property, etc.). Windows Installer doesn't monitor other means of changing the property. See my related answers:

Community
  • 1
  • 1
Michael Urman
  • 15,737
  • 2
  • 28
  • 44