Search code examples
installshield

How to update the ui after a custom action?


I've created a custom dialog like this :

enter image description here

Notice that when the user clicks on Test Connection a custom action fires. It looks like this :

enter image description here

Here I tried to pass the DBTestResult Variable through, as a test to see if I could edit it in the function, but that didn't work - neither it seems just straight returning it as per the pic.

The actual custom action gets called and looks like this :

public static string CanAuthenticate(string server, string username, string password, string DBTestResult)
        {
            DBTestResult = "It got updated";
            MessageBox.Show("Called");
            return "It got updated";
        }

I would really expect it to update the label with the string literal "It got updated" - but nothing happens, it's always null / empty string.

What am I missing?


Solution

  • The answer to this is covered by my answer on your other question: Windows Installer UI doesn't know to update in response to arbitrary property changes, such as those that occur during a control event DoAction. Thus in order to ensure the UI updates, you have to add something that it understands, such as a control event SetProperty action that writes to the desired property.