Examinar mais detalhadamente: Compartilhamento de um manipulador evento
Nesta lição, você aprenderá a criar um manipulador de eventos compartilhado que trata os eventos para mais de um controle.
Na lição anterior, Fazendo o seu programa reagir ao usuário: Criando um manipulador de eventos, você aprendeu como escrever código em resposta aos eventos MouseEnter e MouseLeave de um controle Button.O que acontece, contudo, se você tiver dois ou mais controles Button e você desejar exibir a mesma mensagem para todos eles?Você poderia escrever código nos manipuladores de eventos para cada controle, mas felizmente há uma maneira mais fácil.
Se você examinar de perto os métodos do manipulador de eventos para o evento MouseEnter, observará que a declaração Method (Private Sub Button1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter) contém uma cláusula Handles (Handles Button1.MouseEnter).Não surpreendentemente, a palavra-chave Handles informa o manipulador de eventos com quais eventos deve lidar.
Para compartilhar um manipulador de eventos entre vários controles, basta adicionar os nomes dos controle adicionais e o nome do evento que deseja manipular.O manipulador de eventos, em seguida, é notificado quando o evento ocorre para qualquer um desses controles.Por exemplo, se você tivesse dois controles Button e você quisesse usar o mesmo manipulador de eventos para ambos, a cláusula Handles teria a aparência a seguir.
Handles Button1.MouseEnter, Button2.MouseEnter.
Você agora tem um método único que manipula o evento MouseEnter para ambos os controles, mas como o manipulador de eventos sabe qual controle gera o evento?Se você olhar a declaração Method novamente, você observará a cláusula ByVal sender As Object — a palavra-chave Sender informa o manipulador de eventos que objeto (neste caso que controle) gerou o evento.
Tente-o!
Para compartilhar um manipulador de eventos
Abra o projeto EventHandler que você criou na lição anterior.Se você não o salvou, você primeiramente precisará voltar para a lição anterior, Fazendo o seu programa reagir ao usuário: Criando um manipulador de eventos, e completar os procedimentos da lição.
Em Gerenciador de Soluções ,selecione Form1.vb e em seguida, no menu View, clique em Criador .
Da Toolbox, arraste outro controle Button para o formulário.
No Propriedades janela, defina o AutoSize propriedade para True.
No menu View, clique em Code para abrir o Editor de Código.
Na declaração de método Button1_MouseEnter (Private Sub Button1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter), altere a cláusula Handles para Handles Button1.MouseEnter, Button2.MouseEnter.
No corpo da declaração de evento, substitua o código pelo seguinte.
If sender.Equals(Button1) Then Button1.Text = "The mouse has entered Button1" Else Button2.Text = "The mouse has entered Button2" End If
Esse código verifica se o remetente foi Button1. Em caso afirmativo, a propriedade Text de Button1 é atualizada; caso contrário, em seguida, a propriedade Text de Button2 é atualizada.
Na declaração de método Button1_MouseLeave, altere a cláusula Handles como segue.
Handles Button1.MouseLeave, Button2.MouseLeave.
No corpo da declaração de evento, substitua o código pelo seguinte.
sender.Text = "The mouse has left"
Nesse caso, o código define a propriedade Text do remetente (Button1 ou Button2) para a mesma sequência de caracteres.
Pressione F5 para executar o aplicativo.
Agora, quando o ponteiro do mouse passa sobre o botão, o texto é alterado para The mouse has entered, juntamente com o nome do botão, e quando o mouse não estiver mais sobre o botão, o texto volta para The mouse has left.
Tente adicionar mais controles ao formulário e modificar as cláusulas Handles para incluí-los — eles nem precisam ser o mesmo tipo de controles!
Próximas etapas
Nesta lição, você aprendeu como compartilhar um único manipulador de eventos entre vários controles.Na próxima lição, você aprenderá a usar dois novos tipos de controles, os controles CheckBox e RadioButton, para apresentar as opções para os usuários.
Próxima Lesson: Ao obter usuário opções: Usando caixas de seleção e botões de opção
Consulte também
Tarefas
Fazendo o seu programa reagir ao usuário: Criando um manipulador de eventos