2011-09-22 13 views
5

In Framework 4.0, ho un WinForm che viene aperto da un altro modulo, mostra alcune cose e una barra di avanzamento, e quindi si siede lì. Vorrei chiudere il modulo "pop-up" dopo n secods se l'utente non lo chiude manualmente. Qual è il modo più intelligente per farlo?WinForm si chiude automaticamente dopo che scade il tempo?

Grazie.

risposta

9

Avviare un timer con l'intervallo desiderato e quindi quando si spunta la prima volta, chiudere il modulo. Qualcosa di simile

private Timer _timer; 

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

In realtà il modo più intelligente sarebbe probabilmente mettere questo nel suo proprio metodo StartCountdown(), che prende il tempo come parametro. Logica come questa normalmente non dovrebbe essere in un costruttore in senso stretto ...

Problemi correlati