Fermer automatiquement messagebox en C#

je suis en train de développer une application en C# où j'affiche un MessageBox. Comment puis-je fermer automatiquement la boîte de message après quelques secondes?

10
demandé sur Peter Mortensen 2010-12-06 03:29:28

2 réponses

vous devrez créer votre propre fenêtre, avec le code-behind contenant un gestionnaire chargé et un gestionnaire de minuterie comme suit:

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

vous pouvez alors faire apparaître votre boîte de message personnalisée en appelant ShowDialog ():

MyWindow w = new MyWindow();
w.ShowDialog();
9
répondu Greg Sansom 2010-12-06 00:43:35

Le Système.Windows.MessageBox.La méthode Show () a une surcharge qui prend une fenêtre propriétaire comme premier paramètre. Si nous créons une fenêtre de propriétaire invisible que nous fermons après un temps spécifié, la boîte de message de l'enfant se fermerait aussi.

Voici la réponse complète: https://stackoverflow.com/a/20098381/2190520

3
répondu Esge 2017-05-23 12:01:38