2010-12-06 68 views
9

Actualmente estoy desarrollando una aplicación en C# donde visualizo un MessageBox. ¿Cómo puedo cerrar automáticamente el cuadro de mensaje después de un par de segundos?Cerrar automáticamente el cuadro de mensaje en C#

+0

uso de un temporizador ..... –

+6

De hecho - un contador de tiempo - y su propio diálogo personalizado en lugar de un cuadro de mensaje, de lo contrario tendrá que empezar a tocar el violín con el envío de eventos a el MessageBox para que se cierre, me imagino. –

Respuesta

9

Usted tendrá que crear su propia ventana, con el código subyacente que contiene un controlador de carga y un controlador de temporización de la siguiente manera:

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

A continuación, puede hacer que su cuadro de mensaje personalizado aparece llamando ShowDialog() :

MyWindow w = new MyWindow(); 
w.ShowDialog(); 
3

el método System.Windows.MessageBox.Show() tiene una sobrecarga que tiene una ventana de propietario que el primer parámetro. Si creamos una ventana de propietario invisible que luego cerramos después de un tiempo específico, también se cerrará el cuadro de mensaje secundario.

Aquí está la respuesta completa: https://stackoverflow.com/a/20098381/2190520

Cuestiones relacionadas