Автоматическое закрытие messagebox в C#

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

2 ответов


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

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();

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

вот полный ответ:https://stackoverflow.com/a/20098381/2190520