none
Apresentar uma mensagem em panel por 5 segundos RRS feed

  • Discussão Geral

  • Bom dia pessoal, 

    Alguem pode me dar uma ajudinha, pois preciso criar um procedimento de form que me possibilite "piscar" na tela um determinado panel  durante 5 segundos, (piscar 1 vez a cada 1 segundo).

    Sei que devo usar um Time, porem infelizmente não esta funcionando da maneira que estou criando.

    private void ApresentarStatus(string msg)
            {
                var t = new Timer();
                t.Interval = 5000; // it will Tick in 5 seconds
                t.Tick += (s, e) =>
                {
                    panel9.Visible=true;
                    
                    lbStatus.Text = msg;
                    
                    t.Stop();
    
                    panel9.Visible = false;
                };
                t.Start();
            }
           

    segunda-feira, 19 de setembro de 2016 15:58

Todas as Respostas

  • Olá Nelson,

    Você está no caminho, porém tem que alterar algumas coisas, segue o código (em seguida eu o explico):

            private void ApresentarStatus(string msg)
            {
                var t = new Timer();
                int cont = 1;
                t.Interval = 500; // it will Tick in 1/2 seconds
                t.Tick += (s, e) =>
                {
                    panel9.Visible = !panel9.Visible;
                    lbStatus.Text = msg;
                    
                    if (cont++ == 10)
                        t.Stop();
                };
                t.Start();
            }

    Primeiramente, o timer apenas faz as coisas em um intervalo de tempo (exemplo: 1 em 1 segundo) mas ele não conta quantas vezes deve fazer até parar. Foi por isso que eu implementei um contador no código.

    Em Segundo lugar, defini o tempo do timer para 1/2 segundo pois esse é o intervalo da alteração entre visível e não visível (para que ele pisque uma vez por segundo tem que levar em conta o tempo que ele está oculto também, por isso dividi  = 1/2 segundo para ficar visivel e 1/2 para ficar visivel). Claro isso você pode alterar, mas sempre seguindo essa lógica.

    Espero ter ajudado.

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    segunda-feira, 19 de setembro de 2016 17:07
  • Desculpe a demora na resposta,

    Mas acertou na mosca, funcionou certinho.

    sexta-feira, 23 de setembro de 2016 22:42