iMatch 0 Denunciar post Postado Novembro 19, 2012 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! Compartilhar este post Link para o post Compartilhar em outros sites
xanburzum 169 Denunciar post Postado Novembro 20, 2012 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. 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. Compartilhar este post Link para o post Compartilhar em outros sites
iMatch 0 Denunciar post Postado Novembro 21, 2012 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. 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? Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 21, 2012 A conexão de DataBase é muito rápida, não compensaria você criar um progressbar para isto. Compartilhar este post Link para o post Compartilhar em outros sites
iMatch 0 Denunciar post Postado Novembro 21, 2012 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 Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 22, 2012 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. Compartilhar este post Link para o post Compartilhar em outros sites
Metalus Us 0 Denunciar post Postado Dezembro 25, 2012 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; Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Dezembro 26, 2012 Também é mais fácil fazer deste jeito, ou então você usa o método Increment(<valor>), também é mais simples. Compartilhar este post Link para o post Compartilhar em outros sites