WinForm автоматически закрывается после истечения времени? - PullRequest
6 голосов
/ 22 сентября 2011

В Framework 4.0 у меня есть WinForm, который открывается из другой формы, отображает некоторые вещи и индикатор выполнения, а затем сидит там.Я хотел бы закрыть эту «всплывающую» форму после n секунд, если пользователь не закрывает ее вручную.Какой самый умный способ сделать это?

Спасибо.

1 Ответ

11 голосов
/ 22 сентября 2011

Запустите таймер с нужным интервалом, а затем, когда он заработает в первый раз, закройте форму. Как то так

private Timer _timer;

public PopupForm()
{
   InitializeComponent();
   _timer = new Timer();
   _timer.Interval = 5000; // interval in milliseconds here.
   _timer.Tick += (s, e) => this.Close();
   _timer.Start();
}

На самом деле, самый умный способ, вероятно, заключался бы в использовании собственного метода StartCountdown (), который принимает время в качестве параметра. Обычно такая логика не должна быть в конструкторе, строго говоря ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...