none
Contagem Regressiva ? RRS feed

  • Pergunta

  • Olá, preciso fazer o seguinte.

    Assim que iniciar o Form, o label vai estar em 10 e ja vai estar caindo para 9, 8 , 7, 6 , 5 .... e quando chegar em 0  a aplicação vai dar um Application.Exit() para sair por completa.


    Resumindo: Contagem regressiva do 10 até 0 e fechar a aplicação por completo.

    segunda-feira, 17 de outubro de 2016 16:28

Respostas

  • Olá,

    Você pode usar um timer para isso:

    Crie uma variável global para controlar os segundos:

    Dim contSegundos As Integer = 10

    Aqui é onde irá criar e startar o timer (pode colocar ela dentro de um botão ou ao iniciar o form):

    Dim timer1 As Timer = New Timer
    timer1.Interval = 1000
    AddHandler timer1.Tick, AddressOf Me.Timer1_Tick
    timer1.Start

    E aqui a função que é chamada após o timer terminar a contagem (segundo a segundo):

    Private Sub Timer1_Tick(ByVal Sender As Object, ByVal e As EventArgs)
            contSegundos = (contSegundos - 1)
            label.Text = contSegundos.ToString
            If (contSegundos = 0) Then
                Application.Exit
            End If
            
    End Sub


    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, 17 de outubro de 2016 17:00
  • Olá,

    Você pode usar um timer para isso:

    Crie uma variável global para controlar os segundos:

    Dim contSegundos As Integer = 10

    Aqui é onde irá criar e startar o timer (pode colocar ela dentro de um botão ou ao iniciar o form):

    Dim timer1 As Timer = New Timer
    timer1.Interval = 1000
    AddHandler timer1.Tick, AddressOf Me.Timer1_Tick
    timer1.Start

    E aqui a função que é chamada após o timer terminar a contagem (segundo a segundo):

    Private Sub Timer1_Tick(ByVal Sender As Object, ByVal e As EventArgs)
            contSegundos = (contSegundos - 1)
            label.Text = contSegundos.ToString
            If (contSegundos = 0) Then
                Application.Exit
            End If
            
    End Sub


    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



    Obrigado serio msm só tive que mudar o count para countSegundos, mas funcionou perfeitamente ;)

     A quando da debug e finaliza a aplicação pelo contador aparece isso:

    Mas quando eu abro o .exe pela pasta normal ja , ele não apresenta nenhuma alteração.

    Thanks ;)

    • Marcado como Resposta s1nkles terça-feira, 18 de outubro de 2016 13:07
    segunda-feira, 17 de outubro de 2016 17:15

Todas as Respostas

  • De uma olhda nessa soluçao:

    http://vbcity.com/blogs/xtab/archive/2011/10/06/how-to-display-a-countdown-timer.aspx

    Creio que va te servir de inspiraçao.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    segunda-feira, 17 de outubro de 2016 16:44
    Moderador

    Seguem os passos:

    • Crie uma variável int na sua classe do form e inicialize seu valor em 10;
    • Arraste um componente Timer para o seu form e configure o interval para 1000 milissegundos;
    • No evento Load do form você habilita o Timer para que ele comece a contar (timer1.Enabled = true);
    • Ainda no evento Load você altera o texto do Label para o valor da variável criada acima;
    • No evento Tick do Timer você subtrai 1 na sua variável e altera o texto do Label para o novo valor da variável;
    • E por último, ainda no evento Tick você verifica se a variável é igual a zero, caso sim você finaliza a aplicação.

    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por um acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    segunda-feira, 17 de outubro de 2016 16:47
  • Olá,

    Você pode usar um timer para isso:

    Crie uma variável global para controlar os segundos:

    Dim contSegundos As Integer = 10

    Aqui é onde irá criar e startar o timer (pode colocar ela dentro de um botão ou ao iniciar o form):

    Dim timer1 As Timer = New Timer
    timer1.Interval = 1000
    AddHandler timer1.Tick, AddressOf Me.Timer1_Tick
    timer1.Start

    E aqui a função que é chamada após o timer terminar a contagem (segundo a segundo):

    Private Sub Timer1_Tick(ByVal Sender As Object, ByVal e As EventArgs)
            contSegundos = (contSegundos - 1)
            label.Text = contSegundos.ToString
            If (contSegundos = 0) Then
                Application.Exit
            End If
            
    End Sub


    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, 17 de outubro de 2016 17:00
  •  contSegundos = (contSegundos - 1)
            label.Text = contSegundos.ToString
            If (cont = 0) Then
                Application.Exit
            End If

    Name "cont" is not declared

    Corrigido !

    If (contSegundos = 0) Then  ??

    • Editado s1nkles segunda-feira, 17 de outubro de 2016 17:04
    segunda-feira, 17 de outubro de 2016 17:03
  • Realmente, esqueci de mudar, já atualizei a resposta anterior, o correto ao invés de cont é contSegundos

    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, 17 de outubro de 2016 17:05
  • Olá,

    Você pode usar um timer para isso:

    Crie uma variável global para controlar os segundos:

    Dim contSegundos As Integer = 10

    Aqui é onde irá criar e startar o timer (pode colocar ela dentro de um botão ou ao iniciar o form):

    Dim timer1 As Timer = New Timer
    timer1.Interval = 1000
    AddHandler timer1.Tick, AddressOf Me.Timer1_Tick
    timer1.Start

    E aqui a função que é chamada após o timer terminar a contagem (segundo a segundo):

    Private Sub Timer1_Tick(ByVal Sender As Object, ByVal e As EventArgs)
            contSegundos = (contSegundos - 1)
            label.Text = contSegundos.ToString
            If (contSegundos = 0) Then
                Application.Exit
            End If
            
    End Sub


    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



    Obrigado serio msm só tive que mudar o count para countSegundos, mas funcionou perfeitamente ;)

     A quando da debug e finaliza a aplicação pelo contador aparece isso:

    Mas quando eu abro o .exe pela pasta normal ja , ele não apresenta nenhuma alteração.

    Thanks ;)

    • Marcado como Resposta s1nkles terça-feira, 18 de outubro de 2016 13:07
    segunda-feira, 17 de outubro de 2016 17:15
  • Se resolveu seu problema, marque como resposta, afim de ajudar outras pessoas com a mesma dúvida a identificar rapidamente a solução.

    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, 17 de outubro de 2016 18:47