Inquiridor
Codificando ProgressBar no C#

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??
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.
-
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
-