none
correr y detener un progressbar RRS feed

  • Pregunta

  • Saludos,

    Como podria iniciar y detener una ProgressBar, pero que al momento que la detenga y le de continuar pues siga con el mismo porcentaje?

    Espero haber sido lo mas claro posible;

    Decidí no insertar códigos para esperar ver que surge por parte de los miembros del foro, pero en todo caso aqui un link por si quieren tener un idea de como lo deseo; 

    https://www.c-sharpcorner.com/article/code-for-progressbar-in-windows-application-using-c-sharp-net/

    viernes, 20 de julio de 2018 12:18

Todas las respuestas

  • Buenos Dias Dewin:

    Has intentado guardar el valor que tiene la barra al momento de detenerla en una variable y luego al continuar pasarle ese mismo valor al ProgressBar???

    saludos


    viernes, 20 de julio de 2018 13:06
  • hola

    Si asignaste la propiedad Maximum del progress y vas poniendo valor al Value para que avance la forma de detenerlo es simplemente no asignando ningun Value

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 20 de julio de 2018 16:17
  • El problema es que no logro detener el For. Continua hasta que la sentencia se completa.

    Este es el código que tengo hasta el momento. 

    Lo unicio mediante el btnInicio & quiero detenerlo mediante el btnDetener pero que se quede exactamente con el porcentaje hasta ese momento, sin embargo... quiero que si le doy nuevamente al boton bntInicio pues continue. Podria ser todo en un mismo boton si es mas facil para ustedes!!!

    using System.ComponentModel;  
    using System.Threading;  
    using System.Windows.Forms;  
      
    namespace WindowsFormsApplication1  
    {  
        public partial class Form2 : Form  
        {  
        public Form2()  
        {  
            InitializeComponent();  
        }  
      
        private void btnInicio_Click(object sender, EventArgs e)  
        {  
                backgroundWorker1.WorkerReportsProgress = true;
                backgroundWorker1.RunWorkerAsync();  
        }  
      
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)  
        {  
            for (int i = 1; i <= 100; i++)  
            {  
            // Wait 50 milliseconds.  
            Thread.Sleep(50);  
            // Report progress.  
            backgroundWorker1.ReportProgress(i);  
            }  
        }  
      
        private void backgroundWorker1_ProgressChanged(object sender,  
            ProgressChangedEventArgs e)  
        {  
            // Change the value of the ProgressBar  
            progressBar1.Value = e.ProgressPercentage;  
            // Set the text.  
            this.Text =  "Progress: " + e.ProgressPercentage.ToString() + "%"; 
        }  
        }  
    }  

    • Editado DewinRD viernes, 20 de julio de 2018 16:59
    viernes, 20 de julio de 2018 16:37
  • hola

    pero como vas a detener el for sino pones ninguna logica o codicion dentro de este

    tienes que invocar al

    BackgroundWorker.CancelAsync

    Entonces dentro del for usas

    if (worker.CancellationPending)
    {
        e.Cancel = true;
        break;
    }

    saludos

    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 20 de julio de 2018 20:39