Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Desejaria saber como faço pra saber o progresso de uma operação em c# com Windows Forms, e progressbar.
Mas me expliquem detalhadamente!
>
Olá amigo...
este fórum é apenas ASP Classic. Porfavor poste no fórum de .Net
Mas aqui vai um exemplo
using System.ComponentModel;
using System.Threading;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, System.EventArgs e)
{
// inicia a BackgroundWorker.
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 1; i <= 100; i++)
{
// 100 milesegundos
Thread.Sleep(100);
// Report progress.
backgroundWorker1.ReportProgress(i);
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
// Set the text.
this.Text = e.ProgressPercentage.ToString();
}
}
}
O controle ProgessBar indica visualmente o progresso de uma operação com o passar de um intervalo de tempo. Você pode usá-lo em operações de cópia de arquivos , conexão com a internet , acesso a banco de dados , operações com registros de tabelas , etc.
A classe ProgressBar possui quatro propriedades que são comumente usadas e que não são herdadas do controle ou outra classe base.
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.baboo.com.br/wp-content/uploads/2012/05/Untitled-61.png&key=f039c3853c05d3c9bf688d72d16a1510c2aa963c8aafb50624976c813170ebf8" alt="Untitled-61.png" />
Além destas propriedades o controle possui dois métodos que são geralmente usados:
Increment - método que tem como argumento um inteiro pelo qual incrementa a barra de progresso.
PerformStep - método sem argumentos que incrementa a barra de progresso pelo valor definido pela propriedade Step.
Olá,
Perdão por postar em local incorreto.
Bom...Exemplo eu quero me conectar com a DB de um usuário, mas quero informar a o progresso numa barra de progresso, como eu poderia executar?
A conexão de DataBase é muito rápida, não compensaria você criar um progressbar para isto.
Olá,
Então como faço pra descobrir o valor de uma operação, sei que tem que usar BackgroundWorker, mas como faço pra descobrir o progresso da operação com ele? Caso não seja BackgroundWorker por favor me digam, qual método eu posso usar, e me expliquem por favor :)
Grato,
iMatch
Cara, é o seguinte, o bgworker ele vai dar um progresso automático que você retornar, ou seja, se você quer que ele retorne um valor de porcentagem você precisa ter seus métodos sendo realizados e no meio deles um "ReportProgress" com um valor, assim você define a porcentagem de progresso do BGW.
O mesmo vale para fora dele, ou seja, o que estou falando aqui é que VOCÊ define o progresso da sua aplicação, não existe um programa que defina, se a conexão está fechada então é 0% se está aberta é 100%, esse meio tempo passa-se em questão de microssegundos, muito rápido para qualquer coisa colocar uma porcentagem na barra.
Amigo, BackgroundWorker , é uma Thread a mais rodando na sua aplicação.
Se você ta iniciando agora , recomendo não usar isso, estude programação concorrente para executar isso.
E como o KhaosDoctor ja mencionou, conexão e troca de dados com DB, é muito rápida, seria gastar processamento, informando o progresso, e criando uma nova Thread para isso.
Além de que BackgroundWorker, é bom você ter algumas noções de Orientação a Eventos.
Se você quer fazer tal coisa, de progresso, nada melhor do que você mesmo informar ao código, a porcentagem na progressbar.
Exemplo, ele chegou em tal parte do código, rodou, e funcionou direitinho.
Então você aumenta o valor do progresso no braço mesmo.
progressBar1.Value = novoValor;
Também é mais fácil fazer deste jeito, ou então você usa o método Increment(<valor>), também é mais simples.
Olá amigo...
este fórum é apenas ASP Classic. Porfavor poste no fórum de .Net
Mas aqui vai um exemplo
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
private void Form1_Load(object sender, System.EventArgs e)
{
// inicia a BackgroundWorker.
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
O controle ProgessBar indica visualmente o progresso de uma operação com o passar de um intervalo de tempo. Você pode usá-lo em operações de cópia de arquivos , conexão com a internet , acesso a banco de dados , operações com registros de tabelas , etc.
A classe ProgressBar possui quatro propriedades que são comumente usadas e que não são herdadas do controle ou outra classe base.
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.baboo.com.br/wp-content/uploads/2012/05/Untitled-61.png&key=f039c3853c05d3c9bf688d72d16a1510c2aa963c8aafb50624976c813170ebf8" alt="Untitled-61.png" />
Além destas propriedades o controle possui dois métodos que são geralmente usados:
Increment - método que tem como argumento um inteiro pelo qual incrementa a barra de progresso.
PerformStep - método sem argumentos que incrementa a barra de progresso pelo valor definido pela propriedade Step.