locked
Progressbar dinamicamente RRS feed

  • Pergunta

  • Pessoal,

    Ao clicar em um botão, é feita a chamada de um método, que utiliza um progressbar global, que é controlado pelo evento tick do timer. O meu problema é que a cada click, eu preciso criar um novo progressBar (aninhado aquele método que é chamado no click, visto que o valor máximo que o progressBar deve receber (um valor informado pelo usuário) está dentro desse método) controlado pelo tick.

    quinta-feira, 20 de agosto de 2015 12:07

Respostas

  • Boa tarde,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Marcos SJ segunda-feira, 24 de agosto de 2015 16:11
    segunda-feira, 24 de agosto de 2015 16:11

Todas as Respostas

  • Bom dia! 

    Deixa eu capitalizar a ideia, a cada novo clique do mesmo botão? Exemplo: Cliquei uma vez no botão ele chamou método e depois do tempo finalizou, você quer que ele zere o progressobar e reutilize o código para iniciar em qualquer lugar do código ou você quer que ao clicar no mesmo botão ele continue de onde parou? 

    Att,

    quinta-feira, 20 de agosto de 2015 13:38
  • Bom dia Gabriel,

    Não. O seguinte, eu cliquei no botão e criou um progressbar  e o tempo rodando, e nisso cliquei novamente para criar um outro progressbar, tendo assim 2 progressbar simultâneos. Entendeu a idéia ? 

    quinta-feira, 20 de agosto de 2015 13:43
  • Entendo, nem quero saber o objetivo kk 

    Pode postar a parte do código que cria? 

    Att, 

    quinta-feira, 20 de agosto de 2015 14:02
  •         private void adicionarServico()
            {
                int coluna = grid1.ColumnsCount;
                int posHI;
                int posMI = 0;
    
                int posHF;
                int posMF = 0;
    
                int f = 0;
    
                int horaI = Convert.ToInt32(textBox4.Text.Substring(0, 2));
                int minI = Convert.ToInt32(textBox4.Text.Substring(3, 2));
    
                int horaF = Convert.ToInt32(textBox5.Text.Substring(0, 2));
                int minF = Convert.ToInt32(textBox5.Text.Substring(3, 2));
    
                for (int i = 0; i < coluna; i++)
                {
                    if (grid1[0, i].Value.ToString() == horaI.ToString())
                    {
                        posHI = i;
                        for (int j = posHI; j < coluna; j++)
                        {
                            if (grid1[0, j].Value.ToString() == minI.ToString())
                            {
                                posMI = j;
                                j = coluna;
                            }
                        }
                        i = coluna;
                    }
                }
    
                for (int i = 0; i < coluna; i++)
                {
                    if (grid1[0, i].Value.ToString() == horaF.ToString())
                    {
                        posHF = i;
                        for (int j = posHF; j < coluna; j++)
                        {
                            if (grid1[0, j].Value.ToString() == minF.ToString())
                            {
                                posMF = j;
                                j = coluna;
                            }
                        }
                        i = coluna;
                    }
                }
    
                for (int i = posMI; i <= posMF; i++)
                {
                    grid1[1, i] = null;
                    grid1[2, i] = null;
                }
    
                grid1.LinkedControls.Add(new LinkedControlValue(progressBarT, new Position(2, posMI)));
    
                grid1[1, posMI] = new SourceGrid.Cells.Cell("SERVIÇO");
                grid1[1, posMI].ColumnSpan = (posMF - posMI) + 1;
                grid1[2, posMI] = new SourceGrid.Cells.Cell("");
                grid1[2, posMI].ColumnSpan = (posMF - posMI) + 1;
    
                TimeSpan horaIni = new TimeSpan(horaI, minI, 0);
                TimeSpan horaFim = new TimeSpan(horaF, minF, 0);
                TimeSpan intervalo = horaFim - horaIni;
    
                progressBarT.Height = 20;
                
                grid1[1, 0].Row.Height = 30;
                grid1.Refresh();
                grid1[2, posMI].Column.Width = 100;
                grid1[2, 2].Row.Height = 20;
    
                progressBarT.GradiantPosition = ProgressBarEx.GradiantArea.None;
                progressBarT.BackgroundColor = Color.Transparent;
                progressBarT.BackColor = Color.Transparent;
                progressBarT.ProgressColor = Color.DarkGreen;
                progressBarT.Maximum = Convert.ToInt32(intervalo.TotalMinutes);
                progressBarT.Text = "OS 1111";
                progressBarT.ShowText = true;
                time.Start();
            }
    Lembrando que o progressBar utilizado foi criado globalmente, pois precisa ser utilizado no evento tick.
    quinta-feira, 20 de agosto de 2015 14:07
  • Boa tarde, 

    Só para entender, acho que captei, se o usuário colocar que quer 10 progressBar, ao clicar no botão, irá aparecer a quantidade que ele solicitou... É isso? 

    quinta-feira, 20 de agosto de 2015 16:19
  • Boa Tarde,

    Na verdade não. Há uma Grid criada com Horas inteiras, e determinados intervalos. Exemplo:


    E ai, podem ser inseridos vários serviços, mas gostaria de ter uma progressbar em cada um. Entendeu?

    quinta-feira, 20 de agosto de 2015 16:40
  • Olá Yannick Freitas,

    Desculpe, eu ainda não consegui compreender o que você precisa fazer. Será que teria um exemplo que oudesse usar para explicar o que você precisa fazer e o propósito disso?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 21 de agosto de 2015 19:14
  • Boa tarde,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Marcos SJ segunda-feira, 24 de agosto de 2015 16:11
    segunda-feira, 24 de agosto de 2015 16:11