Llenado ProgressBar
Publicado por aren (1 intervención) el 22/09/2007 13:08:20
Hola escribo para comentaros mi problema.
Estoy trabajando en una aplicación en Visual Basic .net (Visual studio 2005) en Windows Vista. Mi problema empieza cuando quiero llevar el control de la ejecución de un proceso a través de un progressbar. Los parámetros de configuración del control los tengo claros (al menos eso creo): valorer mínimo, máximo y actual (value).
El progressbar está dentro de un form (Form1) que se despliega cuando comienza el proceso, el cuál se ejecuta desde una clase externa (Cass1) al formulario en el que se encuentra la barra de progreso. De modo que mi código más o menos es:
Class
sub process
form1.progressbar1.minimum=minvalue
form1.progressbar1.maximun=maxvalue
form1.show
for i=minvalue to maxvalue
form1.progressbar1.value=i
form1.progressbar1.update
next
form1.close
end sub
end class
El problema es que la barra de progreso se queda como trabada a mitad de la ejecución, es como si el procesador ejecutara el bucle más rápido y no le diera tiempo a la pantalla de refrescar los datos de la barra (ya que al terminar el proceso el formulario que contiene la barra de proceso se cierra). Esta es la única explicación que yo le encuentro, ya que lo he ejecutado en un procesador más lento y con el sistema operativo Windows XP y funciona perfectamente. El problema aparece cuando lo ejecuto en windows Vista y con el procesador más rápido.
He probado a incluir el "application.doevents" después de la línea en la que actualizo el valor del progressbar y con esto la línea de progreso avanza un poco más pero no llega a completarse del todo.
Bueno esta es mi duda. He revisado los post anteriores y hay uno relativo al uso de progressbar de título problema con progressbar) creo que también desde una clase pero no entiendo del todo la solución. Así que si me podeis ayudar os lo agradecería.
Saludos y gracias
PD Perdón por la extensión del comentario.
Estoy trabajando en una aplicación en Visual Basic .net (Visual studio 2005) en Windows Vista. Mi problema empieza cuando quiero llevar el control de la ejecución de un proceso a través de un progressbar. Los parámetros de configuración del control los tengo claros (al menos eso creo): valorer mínimo, máximo y actual (value).
El progressbar está dentro de un form (Form1) que se despliega cuando comienza el proceso, el cuál se ejecuta desde una clase externa (Cass1) al formulario en el que se encuentra la barra de progreso. De modo que mi código más o menos es:
Class
sub process
form1.progressbar1.minimum=minvalue
form1.progressbar1.maximun=maxvalue
form1.show
for i=minvalue to maxvalue
form1.progressbar1.value=i
form1.progressbar1.update
next
form1.close
end sub
end class
El problema es que la barra de progreso se queda como trabada a mitad de la ejecución, es como si el procesador ejecutara el bucle más rápido y no le diera tiempo a la pantalla de refrescar los datos de la barra (ya que al terminar el proceso el formulario que contiene la barra de proceso se cierra). Esta es la única explicación que yo le encuentro, ya que lo he ejecutado en un procesador más lento y con el sistema operativo Windows XP y funciona perfectamente. El problema aparece cuando lo ejecuto en windows Vista y con el procesador más rápido.
He probado a incluir el "application.doevents" después de la línea en la que actualizo el valor del progressbar y con esto la línea de progreso avanza un poco más pero no llega a completarse del todo.
Bueno esta es mi duda. He revisado los post anteriores y hay uno relativo al uso de progressbar de título problema con progressbar) creo que también desde una clase pero no entiendo del todo la solución. Así que si me podeis ayudar os lo agradecería.
Saludos y gracias
PD Perdón por la extensión del comentario.
Valora esta pregunta


0