Nesta dica vou falar sobre eventos e para começar uma pergunta básica: Como lidar com o controle de eventos no VB.NET ?
É claro que você deve saber que um gerenciador de evento lhe permite responder a notificações de um controle. Para você escolher um controle de evento com o qual deseja trabalhar , na janela de código , selecione o controle da lista de controles da janela de exibição de código . Como exemplo abaixo mostramos os eventos para o formulário form1.vb .
- Basta você selecionar o evento com o qual deseja trabalhar na lista suspensa. |
Se você estiver se perguntando : Só temos estes eventos para um formulário ? Eu vou lhe lembrar que todo o código esta dentro da classe formulário (No VB.NET tudo são classes , lembra ??? ) e para acessar todos os eventos você tem que escolher a classe de Eventos Base - Base Class Events. (veja abaixo)
Mas o que eu quero realmente mostrar é uma característica muito importante na forma como no VB.NET um gerenciador de evento pode funcionar com múltiplos controles diferentes.
Até a versão 6 do VB , quando tínhamos que tratar com mais de controle com um evento , criávamos um array de controle que era identificado por um índice e associado ao evento chamado pelo controle. Dava um trabalhão !!!
No VB.NET um gerenciador de evento esta ligado a um evento pela palavra-chave - Handles - (alças). Esta palavra aparece no fim da definição. Veja abaixo o exemplo para o formulário form1.vb:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load End Sub |
Como a ligação é feita pela palavra-chave Handles , podemos mudar o nome do evento sem causar nenhum problema , e, aproveitando isto podemos criar gerenciadores de eventos que trabalham com mais de um controle. Para isto basta acrescentar o nome dos controles á cláusula Handles e esta feito. Entendeu ? Vamos exemplificar para clarear...
1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)
2- No formulário form1.vb inclua três controles Buttons . Os nomes para cada Button pode ser o nome padrão : Button1,Button2 e Button3. O aspecto do formulário é o seguinte :
|
- Vamos agora
incluir o seguinte código no formulário:
|
Perceba que estamos compartilhando o evento Click com os três botões , mas como saber qual controle disparou o evento Click ?
Para isto vamos usar o objeto Sender. Este objeto é passando ao evento pelo Vb.NET e ele trata a referência ao objeto que disparou o evento basta então obter qual o controle que disparou o evento via objeto Sender . Para isto temos que fazer uma conversão de tipo de dados forçada ( um casting) . O código para o exemplo seria assim :
Private
Sub MeusBotoes(ByVal
sender As System.Object, ByVal e
As System.EventArgs) Handles
Button1.Click, Button2.Click, Button3.Click
Dim botao As Button botao = CType(sender, Button)
Select Case botao.Name Case "Button1" MsgBox("Voce pressionou o botão 1") Case "Button2" MsgBox("Voce pressionou o botão 2") Case "Button3" MsgBox("Voce pressionou o botão 3") End Select End Sub |
Apenas fizemos um Cast ( conversão forçada) do objeto Sender para o tipo Button e verificamos o nome do botão. Ao executar o projeto e pressionar - Button2 - teremos:
Aguarde a próxima dica sobre o Vb.NET. Tchau ...
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
suporte e vídeo aulas com curso básico sobre C# |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: