Как обновить интерфейс мастера на мастере в installshield
Я работаю над базовым проектом MSI installshield в installshield 2016. У меня есть поле редактирования и текстовая область на моем шаге мастера. Текстовая область на самом деле является меткой ошибки. Visible
свойство элемента управления текстовой области изначально установлено на false
,
После ввода данных в поле редактирования пользователь нажимает Next >
Кнопка на шаге мастера. Мы выполняем некоторые проверки ввода пользователя, а затем устанавливаем частное свойство IsUserInputValid
до 1, если ввод пользователя был действительным. Начальная стоимость IsUserInputValid
свойство равно 0. Значение HasValidationRun
флаг равен 0.
Теперь в разделе поведения я добавил событие для отображения элемента управления для редактирования текстовой области, как показано ниже:
HasValidationsRun = 1 AND IsUserInputValid=0
После того как я нажму Next >
Кнопка метка ошибки не отображается. Но если я изменю ввод, который проходит валидацию, мастер перейдет к следующему шагу, и незадолго до перехода метка станет видимой на секунду. Я не знаю, почему пользовательский интерфейс не обновлялся сам по себе, если я определил условие для Show
Событие правильно.
1 ответ
Вам необходимо добавить событие управления SetProperty, которое устанавливает свойство в новое значение. Это говорит UI обновлять условия, которые ссылаются на измененное свойство (или текст, включая измененное свойство и т. Д.). Установщик Windows не отслеживает другие способы изменения свойства. Смотрите мои связанные ответы:
- /questions/30672675/kak-vzaimodejstvovat-so-svojstvami-upravleniya-posle-vyizova-upravlyaemogo-dejstviya/30672683#30672683 - охватывает общие обновления, включая видимость
- /questions/6388889/doaction-dlya-obnovleniya-teksta/6388898#6388898 - охватывает обновление текста, но применяется тот же принцип.