настраиваемая форма Windows при удалении - PullRequest
0 голосов
/ 29 апреля 2011

Я хочу показать мою пользовательскую форму Windows при удалении.Я собираюсь использовать пользовательское действие C # для этого.Как заставить пользовательское действие ждать, пока пользователь не нажмет OK или Отмена?Я хочу, чтобы мое настраиваемое действие выполнялось только тогда, когда форма закрыта.Сделайте следующее в моем настраиваемом действии:

    CollectUninstallData f = new CollectUninstallData();
            f.Show();
            return f.FormResult;

Но форма на мгновение мигает, и удаление продолжается, не дожидаясь закрытия формы.И это логично, поскольку GUI находится в другом потоке.Но как заставить его ждать закрытия формы?

Мне известно, что показ пользовательских оконных форм в установочных пакетах - это не круто, поэтому, если кто-нибудь может предложить более элегантное решение, я с благодарностью примуэто.

1 Ответ

0 голосов
/ 03 мая 2011

Вы должны использовать метод ShowDialog() вместо Show(). Последний делает форму видимой и возвращает контроль, поэтому ваше пользовательское действие останавливает его выполнение. Первый показывает форму в виде модального диалогового окна и не возвращается, пока пользователь не закроет форму каким-либо образом.

CollectUninstallData f = new CollectUninstallData();
DialogResult r = f.ShowDialog();
f.Dispose(); 
return r;

Если вы хотите знать, нажал ли пользователь OK или Отмена, используйте это утверждение return r == DialogResult.OK ? 0 : 1. Код возврата нуля обычно указывает на успех, а ненулевой - на ошибку.

...