none
Codificando ProgressBar no C# RRS feed

  • Pergunta

  • Bom dia Galera,

    Estou tentado criar uma Progress bar na tela de inicio do meu projeto.
    ela irá apenas mostrar quanto o programa irá demorar para ser apresentado.

    Já tentei diversos códigos porém sem resultado.
    Estou tentando utilizar também um Timer.

    Alguem poderia me ajudar por favor??

    quinta-feira, 25 de setembro de 2014 13:30

Todas as Respostas

  • Ola bom dia.

    Você pode criar um Thread com um sleep e incrementar o progressbar

    mas isso apenas faz o seguinte, depois de um tempo o projeto inicia.

    Agora um progressbar que incrementa enquanto a aplicação carrega todos os componentes, dll, etc...

    Leva um conhecimento melhor.

    quinta-feira, 25 de setembro de 2014 13:35
  • Cara bem simples, veja se ajuda.

    Código do seu form progress

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace Aunica.Prototipos.Automacao
    {
        public partial class frmProgressbar : Form
        {
            /// <summary>
            /// Timer do increment ou seja barrinha do progress
            /// </summary>
            public int ValorIncrement { get; set; }
    
            public frmProgressbar()
            {
                InitializeComponent();
            }
    
    
            /// <summary>
            /// Acessa o timer que dispara o progresso.
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            public void InitiProgress(object sender, EventArgs e)
            {
    
                this.timerProgress.Tick += new EventHandler(timerProgress_Tick);
                this.timerProgress.Start();
    
            }
    
    
    
            private void timerProgress_Tick(object sender, EventArgs e)
            {
                this.progressBarCarregando.Increment(ValorIncrement);
                this.lblPercentual.Text = this.progressBarCarregando.Value.ToString() + "% Completo";
                if (this.progressBarCarregando.Value == this.progressBarCarregando.Maximum)
                {
                    this.timerProgress.Stop();
                    this.Close();
                }
            }
        }
    }
    

    crie uma nova classe

        public class CarregamentoProgress
        {
            static readonly CarregamentoProgress _instance = new CarregamentoProgress();
            public static CarregamentoProgress Instance
            {
                get { return CarregamentoProgress._instance; }
            }
    
            public void Start(Form frmPai, object sender, EventArgs e, FormStartPosition posicionamento, int incremente = 1)
            {
                frmProgressbar progress = new frmProgressbar();
                //progress.MdiParent = frmPai;
                progress.StartPosition = posicionamento;
                progress.ValorIncrement = incremente;
                progress.Show();
                progress.InitiProgress(sender, e);
            }
        }

    coloque em um clique e teste.

    private void btn_Click(object sender, EventArgs e)
            {
                CarregamentoProgress.Instance.Start(this, sender, e, FormStartPosition.CenterScreen, 1);
            }

    Abraço!


    Nome : Romy G. Moura Cargo: Analista Programador

    quinta-feira, 25 de setembro de 2014 13:49
  • Boa noite,

    Você pode exibir o seu código para analisarmos onde está o erro.

    Abs.


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    terça-feira, 14 de outubro de 2014 22:02