Автоматически закрывать окно сообщения в C # - PullRequest
11 голосов
/ 06 декабря 2010

В настоящее время я разрабатываю приложение на C #, где я отображаю MessageBox. Как я могу автоматически закрыть окно сообщения через пару секунд?

Ответы [ 2 ]

10 голосов
/ 06 декабря 2010

Вам нужно будет создать свое собственное Окно с выделенным кодом, содержащим загруженный обработчик и обработчик таймера, следующим образом:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    Timer t = new Timer();
    t.Interval = 3000;
    t.Elapsed += new ElapsedEventHandler(t_Elapsed);
    t.Start();
}

void t_Elapsed(object sender, ElapsedEventArgs e)
{
    this.Dispatcher.Invoke(new Action(()=>
    {
        this.Close();
    }),null);
}

Затем вы можете отобразить свое собственное окно сообщения, вызвав ShowDialog ():

MyWindow w = new MyWindow();
w.ShowDialog();
3 голосов
/ 20 ноября 2013

Метод System.Windows.MessageBox.Show () имеет перегрузку, которая принимает в качестве первого параметра окно владельца.Если мы создадим окно невидимого владельца, которое мы затем закроем через определенное время, его дочернее окно сообщения также закроется.

...