• Viernes 29 de Marzo de 2024, 13:53

Autor Tema:  Progressbar  (Leído 1622 veces)

AdrianHdez

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Progressbar
« en: Sábado 21 de Julio de 2007, 23:01 »
0
Saludos amigos del foro, estoy realizando una aplicación que necesito adjuntarle un ProgressBar cuando esté realizando una tarea compleja. Lo que sucede es que no encuentro los métodos adecuados para adjuntarle el progressBar. Gracias de antemano.

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Progressbar
« Respuesta #1 en: Lunes 23 de Julio de 2007, 16:36 »
0
A progressbar, deber asingnarle un valor maximo valor, o sea MaximunValue.

Luego ir asignandole el valor desde cero, puedes hacerlo con un for hasta el valor maximo.

Ejemplo :

Código: Text
  1. progressBar1.MaximunValue = 500;
  2.  
  3. for (int i = 0; i < progressBar1.MaximunValue&#59; i ++)
  4. {
  5.        progressBar1.Value = i;
  6. }
  7.  
  8.  

Por ahi puedes colocar la que está esperando mientras se carga.

OJO: No depure nada, asi que el codigo puede estar con errores.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

mx_latino

  • Miembro activo
  • **
  • Mensajes: 91
  • Nacionalidad: ec
    • Ver Perfil
Re: Progressbar
« Respuesta #2 en: Lunes 23 de Julio de 2007, 17:48 »
0
Mira compadre este ejemplo lo puse en alguna otra ocasion ese ejemplo trabaja con bases de datos y Servicios Web , pero en definitiva el que de pronto te interesa es el objeto  backgroundWorker que es que hace el trabajo solo..
Adaptalo a tus necesidades y pruebalo :comp:

Solo es cuestion de usar un control llamado backgroundWorker, y este maneja solo las llamadas asincronas..

ejemplo:

Se supone que ya Creamos un Web Service que nos devueve un Dataset con un conjunto de datos de una base de datos y ahora lo vamos a consumir desde un Windows Aplication

Código: Text
  1.  
  2.  
  3. //En el Load del formulario disparo el inicio del proceso y este llama al evento
  4. //DoWork del control backgroundWorker1
  5.  
  6. /*********************************************
  7. private void Form1_Load(object sender, EventArgs e)
  8.         {
  9.             this.backgroundWorker1.RunWorkerAsync();
  10.         }
  11. /*********************************************
  12.  
  13. //Este evento nos sirve para se dispara al iniciar el proceso asincrono
  14. private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
  15.         {
  16.  
  17. // Aqui invocamos al Web Service o cualquier cosa que queramos hacer
  18.             localhost.Service lh= new localhost.Service();
  19.  
  20. //Decimos que el resultado de esto que para nuestro caso va a ser el Dataset que
  21. //nos devuelve el Servicio Web sera el retorno de nuestra operacion
  22.             e.Result = lh.SacarDatos();
  23.  
  24. //Si queremos provocamos el Evento ProgressChanged del
  25. //control backgroundWorker que nos servira a su vez para cambiar o
  26. //actualizar los valores del pogressBar
  27.  
  28.             //Activar siguiente linea si se desea disparar evento ProgressChanged
  29.            // backgroundWorker1.ReportProgress(X_valorPorcentual);
  30.          }
  31.  
  32.  
  33. /*********************************************
  34.  
  35. //Este metodo se dispara cuando se finaliza el proceso asincrono
  36. private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  37.         {
  38.  
  39.   //Cargamos en una variable tipo Dataset el resultado
  40.             DataSet ds = (DataSet)e.Result;
  41.  
  42. //El Dataset asignamos al dataGridView
  43.             this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
  44.  
  45. // La siguiente linea  pone a progressBar1 como completado
  46.          //this.progressBar1.Value = this.progressBar1.Maximum;
  47.         }
  48.  
  49.  
  50. /*********************************************
  51.  
  52. //Este evento se dispara solo si en el Evento DoWork se habilito
  53. //la linea " backgroundWorker1.ReportProgress(X_valorPorcentual); "
  54.  
  55.  
  56.         private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
  57.         {
  58.  
  59.             //progressBar1.Value = e.ProgressPercentage;
  60.         }
  61.  
  62. /*********************************************
  63.  
  64.  
  65.  

Y todo de maravilla!!!

 :comp:   Espero sirva... mxl_latino@hotmail.com