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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Jorge Serrano [MVP VB]
04/04/2006 - 09:45 | Informe spam
Independientemente de la versión de .NET que utilices, usa hilos.

Si usas la versión .NET 2.0, entonces utiliza BackgroundWorker para usar los
hilos de forma rápida y sencilla. :-)

Otra posibilidad es usar Refresh o DoEvents, o incluso un pequeño Sleep que
lo que hará en todos los casos es ralentizar el proceso un poco.

Espero que esto ayude.

Un saludo.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Jeffry" wrote:

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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida