29/09/2016
VB.NET Iniciando no controle Timer
VB .NET ‐ Usando o Controle Timer
O componente Timer presente no VB.NET não é igual ao timer das versões anteriores. No VB6 o controle timer apresentava a seguinte peculiaridade: Você podia atribuir o valor zero à propriedade Interval do controle para desativá‐lo e isto equivale a definir a sua propriedade enabled igual a False Mas a propriedade enabled podia estar definida como True e ainda assim o controle ficaria desativado se a propriedade Interval fosse definida como zero. No VB.NET você não pode mais atribuir o valor zero a propriedade Interval . Para ativar o controle deve definir enabled = True. Nota ‐ Outra alteração no VB.NET , ainda que não se refira diretamente ao controle Timer , são as declarações Date e Time ; estas declarações foram substituídas pelas declarações Today e TimeOfDay. O objetivo básico do controle Timer é permitir que o seu código seja executado a um certo intervalo com base em períodos de tempo. Se o controle estiver ativo ele irá acionar o evento Tick a intervalos regulares que você pode definir. Você então deve inserir o código no evento Tick para executar a operação que você deseja que seja executada nos intervalos definidos. O controle Timer não possui uma interface visível em tempo de execução somente em tempo de desenho. Resumo para usar o controle Timer : Insira o controle no formulário e configure as seguintes propriedades: Enabled igual a True para ativar o controle Atribua um valor a propriedade Interval (em milisegundos ‐ 1000 ms é igual a 1s) que deseja entre os eventos Vamos a um exemplo prático: ‐ Inicie um novo projeto no VB.NET do tipo Windows Application ‐ Dê ao projeto um nome sugestivo , algo como ‐ Relogio. ‐ Insira um controle Label e altere sua propriedade Name para lblrelogio ‐ Insira o controle Timer no formulário. Nota: Na verdade o controle não fica inserido no formulário , mas numa área separada abaixo da do projeto , isto deixa deixa o formulário mais limpo e não interfere na visualização do projeto do formulário. ‐ Defina a propriedade Enabled como True ‐ Defina a propriedade Interval igual 1000 ‐ No evento Tick do controle Timer insira o código abaixo : Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick file:///D:/VB.NET%20%20Iniciando%20no%20controle%20Timer.html
1/4
29/09/2016
VB.NET Iniciando no controle Timer
lblrelogio.Text = DateTime.Now.ToLongTimeString End Sub
Executando o projeto o evento o código do evento Tick do controle Timer irá ser executado a cada 1 s , com isto a hora atual do seu micro será exibida no controle :
A classe Timer esta presente no namespace System.Timers e podemos usar uma declaração Import para criar um novo Timer : Imports System.Timers Dim t As New System.Timers.Time() Dim t as new Timer() Podemos usar outro construtor que permite atribuir um valor para o nosso controle Timer: Dim t As New System.Timers.Timer(3000) Assim como usamos o evento Tick do controle Timer podemos incluir um manipulador de eventos ao controle Timer de maneira a receber as notificações do controle : AddHandler t.Elapsed, AddressOf DispararTimer Public Sub DispararTimer(ByVal seder As Object, ByVal e As System.Timers.ElapsedEventArgs) ' seu código aqui End Sub Vejamos um exemplo: Inicie um novo projeto no VB.NET do tipo Windows Application ‐ Dê ao projeto um nome sugestivo , algo como ‐ Timer2 ‐ Insira dois controles Button e altere o nome padrão para : btnIniciar e btnParar ‐ Insira um controle Label ‐ label1 ‐ com cor de fundo amarelo e fonte Verdana 12 cor azul ‐ Ao lado o layout do formulário Agora vamos ao código : file:///D:/VB.NET%20%20Iniciando%20no%20controle%20Timer.html
2/4
29/09/2016
VB.NET Iniciando no controle Timer
‐ No inicio do código do formulário vamos instanciar a variável objeto tempo como do tipo Timer iniciando o seu valor com 1000 ms ( igula 1 s) Private tempo As New System.Timers.Timer(1000) ‐ Agora no evento Load do formulário vamos definir o evento que irá manipular o controle Timer AddHandler tempo.Elapsed, AddressOf DispararTimer ‐ A seguir o código da rotina que irá manipular o evento do controle Timer. A rotina irá atribuir o valor da data e hora atual a Label que a exibirá no formulário. Public Sub DispararTimer(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Label1.Text = e.SignalTime.ToString End Sub ‐ Para ativar a rotina o código do botão ‐ Parar ‐ apenas define a propriedade enabled como True. Para desativar basta definir enabled como False: Private Sub btnIniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIniciar.Click tempo.Enabled = True End Sub Private Sub btnParar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnParar.Click tempo.Enabled = False End Sub Executando o projeto e clicando no botão ‐ Iniciar ‐ teremos:
Como palavra final gostaria de lembrar que o controle Timer não faz trabalho simultâneo. Se você usar dois controles Timers no formulário e executá‐los ao mesmo tempo um Timer irá trabalhar interrompendo o seu código para uma única tarefa. Logo Timers não são adequados para tarefas de longa duração que requeiram execução simultâneas.(Para isto use uma Thread) Até o próximo artigo VB.NET. file:///D:/VB.NET%20%20Iniciando%20no%20controle%20Timer.html
3/4
29/09/2016
VB.NET Iniciando no controle Timer
Veja os Destaques e novidades do SUPER DVD VB (sempre atualizado) : clique e confira ! Quer migrar para o VB .NET ? Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira... Quer aprender C# ?? Chegou o Super DVD C# com exclusivo material de e e vídeo aulas com curso básico sobre C#. Gostou ? Referências:
Compartilhe no Facebook
Compartilhe no Twitter
Seção VB .NET do Site Macoratti.net Super DVD .NET ‐ A sua porta de entrada na plataforma .NET Super DVD Vídeo Aulas ‐ Vídeo Aula sobre VB .NET, ASP .NET e C# Seção C# do site Macoratti.net Seção Visual Basic 6 do site Macoratti .net Curso C# Basico ‐ Vídeo Aulas Curso Visual Basic .NET Básico ‐ Video Aulas José Carlos Macoratti
file:///D:/VB.NET%20%20Iniciando%20no%20controle%20Timer.html
4/4