2011-09-18 8 views
6

Pensé que el evento Load podría ayudar, pero el siguiente código simplemente muestra "Done" inmediatamente.¿Cómo ejecutar código cuando se muestra el formulario?

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

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

¿Cómo puedo hacer que duerma después de que se muestra el formulario?

Gracias.

+3

¿Qué estás tratando de lograr? – BrokenGlass

Respuesta

0

Puede iniciar Timer en el método Form1_Load y vincular su evento transcurrido a un método que muestre el mensaje.

3

Sugeriría no bloquee un formulario, procese algo y después de mostrar en su título "Listo", supongo que eso es lo que quiere hacer. Esto le da al usuario interfaz de usuario bloqueada sensación, que no es bueno.

Definitivamente es mejor mostrar un formulario temporal de "Espere ..." y al finalizar la operación/cálculo que realiza, muestre su formulario principal.

Mucho más diseño centrado en UX.

+1

@downvoter: ¿te importa explicar o declinar la pasión? – Tigran

0

Thread.Sleep (3000); en el controlador de eventos Load, se retrasa la apertura del formulario durante 3 segundos. Esta es la razón por la que no funciona como esperabas. Un temporizador es la mejor solución.

Cuestiones relacionadas