none
Inicio form RRS feed

  • Pregunta

  • Hola,

    dispongo de un form con:

    - pictureBox1

    - progressBar1

    Mi objetivo es que empiece a cargar la barra cuando se carga el form. He utilizado varios eventos (form.Load, form.Shown...) pero lo que pasa es que carga la barra antes que la imagen. Me gustaría que empezara a cargar una vez este cargado todo el form (imagenes etc.) Qué evento podría utilizar?? (podría ser un evento de la picturebox..pero he probado algunos y tampoco he obtenido el resultado correcto) 

    Gracias,

    Un saludo


    Miguel Alonso - Desarrollador

    miércoles, 25 de abril de 2012 10:32

Respuestas

  • Solucionado. He creado un control "Timer" el evento "tick" de este control es llamado cuando el timer alcanza el tiempo que se ha especificado en la declaración. Dentro de este evento hago progresar la barra de manera artificial, es decir, el programa no carga de forma paralela porque no es muy pesado. unicamente deseo que aparezca la pantalla y el usuario piense que está cargando.

    De este modo la barra comienza a moverse con la figura y el form entero cargado (si conocéis otro evento que cumpla esta misma función agradecería que lo explicarais porque tampoco creo que esta sea la mejor solución). muchas gracias,

    un saludo


    Miguel Alonso - Desarrollador

    domingo, 6 de mayo de 2012 14:59

Todas las respuestas

  • Hola

    Lo que sucede es que cargar una instancia de un form toma solo milisegundos y el tiempo que le muestre la barra de progreso es tan minimo que ni se percataria.

    Si pretendes usar ProgressBar debes tratar de hacerlo en procesos que se demoren y en conjunto con un BackgroundWorker o algo similar para que la UI no se bloquee.

    Solo es poner en google ProgressBar BackgroundWorker y aparecen miles de ejemplos.

    Aqui mismo en los foros de MSDN hay varias respuestas.

    Algunos ejemplos:

    BackgroundWorker and ProgressBar demo

    BackgroundWorker Class

    BackGroundWorker con progress bar

    Saludos.

    miércoles, 25 de abril de 2012 12:09
  • no vale la pena  ponerle progressbar  si tienes pocos procesos en el load mejor pon un msgbox

    MessageBox.Show("Bienvenido sistema cargado con exito")

    viernes, 4 de mayo de 2012 21:35
  • no vale la pena  ponerle progressbar  si tienes pocos procesos en el load mejor pon un msgbox

    MessageBox.Show("Bienvenido sistema cargado con exito")

    Pero el progressbar funciona bien, todo depende como lo haga.

    viernes, 4 de mayo de 2012 22:27
  • Solucionado. He creado un control "Timer" el evento "tick" de este control es llamado cuando el timer alcanza el tiempo que se ha especificado en la declaración. Dentro de este evento hago progresar la barra de manera artificial, es decir, el programa no carga de forma paralela porque no es muy pesado. unicamente deseo que aparezca la pantalla y el usuario piense que está cargando.

    De este modo la barra comienza a moverse con la figura y el form entero cargado (si conocéis otro evento que cumpla esta misma función agradecería que lo explicarais porque tampoco creo que esta sea la mejor solución). muchas gracias,

    un saludo


    Miguel Alonso - Desarrollador

    domingo, 6 de mayo de 2012 14:59
  • Hola

    No se que sentido tiene hacer eso, pero como te dije en uno de los post anterior, prueba con BackgroundWorker, ya que con este usas Threads, ademas, no considero algo razonable hacer esperar a un usuario solo mirando una barra de progreso :s.

    Saludos

    lunes, 7 de mayo de 2012 11:47