Ver Mensaje Individual
  #10 (permalink)  
Antiguo 05/02/2013, 14:15
Avatar de seba123neo
seba123neo
 
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Borrar el contenido de un Label Automaticamente!

es que sleep detiene la ejecucion total de la aplicacion, para simular una demora o pausa (tipo sleep pero sin que se trabe todo), debes hacer un bucle que ejecute el Application.DoEvents() y que termine cuando se cumpla una condicion, en este caso cuando se cumpla la cantidad de segundos que vos quieras, te haces una simple funcion y la llamas con los segundos como parametro.

aca te paso un ejemplo de pausa que no traba la aplicacion.

Código vb:
Ver original
  1. Public Class Form1
  2.  
  3.     Private Sub Pausa(ByVal pSegundos As Integer)
  4.         Dim vInicio As Integer = Environment.TickCount()
  5.         While ((Environment.TickCount() - vInicio) <= pSegundos)
  6.             Application.DoEvents()
  7.         End While
  8.     End Sub
  9.  
  10.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  11.         For i As Integer = 1 To 30
  12.             TextBox1.Text = i
  13.             Call Pausa(1000)
  14.         Next
  15.     End Sub
  16. End Class

al apretar el boton se va sumando 1 al valor del textbox y con una pausa de 1 segundo, esta no traba la pantalla y podes mover los controles y la pantalla. sin embargo dicen que el DoEvents ocupa mucho procesador, pero bueno no creo que sea tan drastico por esos segundos.

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein