ProgressBar

03/04/2006 - 21:26 por Jeffry | Informe spam
Intento utlizar una barra de progreso mientras escribo las lineas q he
recuperado de una tabla a un archvio de texto..
cada vcez q escribo una linea aumento el value del progressbar, pero esto no
se muesras isno hasta el final..cuadno se termino de escribir en el registro..
q estoy haiceno mal..por siacaso el codigo es maso menos asi.

Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = 10
Dim Registro As String = ""
For x = 0 To 10
Registro = "Dato"
'generar cada fila del archivo
r.WriteLine(Registro)
Me.ProgressBar1.Increment(1)
Registro = ""
Next
r.Close()

bueno..entonces apesar q le incremento en 1 cada vez q se escribe una
linea..siempre se muetsra el progreso..cuando terina de hacer la tarea..cual
es el problema a qui?..alqguien tien algun ejempl?..

gracias
 

Leer las respuestas

#1 Jesús López
03/04/2006 - 22:35 | Informe spam
Lo que ocurre es que hasta que no termina el proceso el sistema no lee la
cola de mensajes de la aplicación y por eso no se actualiza hasta el final.
La solución fácil sería llamar dentro del bucle a Application.DoEvents para
forzar a que se lea la cola de mensajes. Esta es la solución que se usaba en
VB 6.0 porque en VB 6.0 no había soporte para subprocesos. En VB 2005, este
tipo de cosas se hacen por medio de programación asíncrona o mendiante
hilos. Lo malo es que usar este tipo de programación requiere bastante
estudio y entrenamiento para realizarla correctamente. Aunque en VB 2005 hay
un componenete llamado BackgroundWorker que facilita mucho la programación
asíncrona a los programadores noveles.

Saludos:

Jesús López



"Jeffry" escribió en el mensaje
news:
Intento utlizar una barra de progreso mientras escribo las lineas q he
recuperado de una tabla a un archvio de texto..
cada vcez q escribo una linea aumento el value del progressbar, pero esto
no
se muesras isno hasta el final..cuadno se termino de escribir en el
registro..
q estoy haiceno mal..por siacaso el codigo es maso menos asi.

Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = 10
Dim Registro As String = ""
For x = 0 To 10
Registro = "Dato"
'generar cada fila del archivo
r.WriteLine(Registro)
Me.ProgressBar1.Increment(1)
Registro = ""
Next
r.Close()

bueno..entonces apesar q le incremento en 1 cada vez q se escribe una
linea..siempre se muetsra el progreso..cuando terina de hacer la
tarea..cual
es el problema a qui?..alqguien tien algun ejempl?..

gracias

Preguntas similares