2011-09-18 13 views
6

Pensavo che l'evento Load potesse essere d'aiuto, ma il codice seguente mostra immediatamente "Fatto".Come eseguire il codice quando viene visualizzato il modulo?

public Form1() 
{ 
    InitializeComponent(); 
    Load += new EventHandler(Form1_Load); 
} 

void Form1_Load(object sender, EventArgs e) 
{ 
    System.Threading.Thread.Sleep(3000); 
    Text = "Done"; 
} 

Come si attiva dopo aver visualizzato il modulo?

Grazie.

+3

cosa stai cercando di ottenere? – BrokenGlass

risposta

0

È possibile avviare un Timer nel metodo Form1_Load e collegare l'evento Elapsed a un metodo che visualizza il messaggio.

3

Vorrei suggerire non bloccare un modulo, elaborare qualcosa e dopo lo spettacolo nel titolo "Fatto", perché ciò che si vuole fare, presumo. Ciò dà all'utente l'interfaccia utente bloccata , che non è buona.

È decisamente meglio mostrare un modulo temporaneo "Attendi per ..." e al completamento dell'operazione/calcolo eseguito, mostra la tua forma principale.

Molto più design focalizzato su UX.

+1

@downvoter: cura di spiegare o downvoting per passione? – Tigran

0

Thread.Sleep (3000); nel Load event handler ritarda l'apertura del modulo per 3 secondi. Questo perché non funziona come ti aspetti. Un timer è la soluzione migliore.

Problemi correlati