Etapa 5: Adicionar um manipulador de eventos MouseEnter para cada parede.
O jogo Labirinto seria mais divertidos e desafiadores se ele envia o ponteiro do mouse do usuário retornar ao início sempre que o ponteiro toca uma parede.Antes de ler Além disso, considere como fazer isso.
Para obter uma versão de vídeo deste tópico, consulte Tutorial 2: criar um Labirinto no Visual Basic - vídeo 3 ou Tutorial 2: criar um Labirinto no C# - vídeo 3.
Para adicionar um manipulador de eventos MouseEnter para cada parede.
Vá para o Windows Forms Designer e clique em qualquer uma das suas paredes adicionadas recentemente.
Vá para o Propriedades janela e clique no evento ícone para exibir os eventos para essa parede.Role até o evento MouseEnter.Em vez de duas vezes sobre ele, digite o wall_MouseEnter de texto e pressione ENTER.O evento ícone e Propriedades janela exibida da seguinte maneira.
Ícone de evento
Janela de propriedades mostrando evento MouseEnter
Observação Quando você digita o nome do evento diretamente na tabela no evento de Propriedades janela, você direciona o IDE para criar um manipulador de eventos com esse nome e conectá-lo para o evento do controle.Muitas vezes, você deseja que o IDE para escolher nomes de eventos, porque os nomes são lógicos e o uso de nomes torna mais fácil para que outros possam ler e compreender o seu código.Quando o IDE escolhe um nome para um manipulador de eventos, ele usa o nome do controle e o nome do evento.Nesse caso, você não alterar os nomes padrão das suas paredes, que são label4, label18, label25e assim por diante.Portanto, se você clicar em uma parede chamada label12, o IDE seria nomeou o manipulador de eventos label12_MouseEnter.Digitando o nome wall_MouseEnter, você está escolhendo um nome mais aplicável.Isso é especialmente importante quando você usa um manipulador de eventos para vários controles, que é o que fazer posteriormente neste tutorial.
Após pressionar ENTER, o IDE adiciona um novo manipulador de eventos para você e conecta-se ao evento de MouseEnter que da parede.O código recém-adicionado deve aparecer em seu editor de código.No Visual Basic, o rótulo específico pode não ser Label8, conforme mostrado no código.
Private Sub wall_MouseEnter() Handles Label8.MouseEnter End Sub
private void wall_MouseEnter(object sender, EventArgs e) { }
Em seguida, adicione uma chamada para seu MoveToStart() método, juntamente com um comentário explicando o método.Iniciar, indo ao seu método e adicionando a instrução MoveToStart().Um IntelliSense janela é aberta, e aparecerá o seguinte.
Janela do IntelliSense
Quando você adicionou seu MoveToStart() método, o IDE ele foi adicionado a IntelliSense janela.Comentário XML que você adicionou aparece na dica de ferramenta.Isso é útil quando você escreve programas com inúmeros métodos.
Pressione TAB para direcionar o IntelliSense para completar o nome do método.Se você estiver escrevendo código do Visual C#, lembre-se de adicionar o ponto e vírgula (;) no final da instrução.Em seguida, adicione um comentário acima a instrução.Seu código deve ter a seguinte aparência.No Visual Basic, o rótulo específico pode não ser Label8, conforme mostrado no código.
Private Sub wall_MouseEnter() Handles Label8.MouseEnter ' When the mouse pointer hits a wall or enters the panel, ' call the MoveToStart() method. MoveToStart() End Sub
private void wall_MouseEnter(object sender, EventArgs e) { // When the mouse pointer hits a wall or enters the panel, // call the MoveToStart() method. MoveToStart(); }
Salve e execute o programa.Mova o ponteiro do mouse sobre a parede para o qual você conectou o manipulador de eventos para.(Se você não lembrar qual deles você escolheu, mova o ponteiro do mouse sobre cada parede até encontrar aquele à direita.) Tão logo você tocá-lo, ele deve enviar o ponteiro do mouse retornar ao início.
Em seguida, você deseja fazer o mesmo para o restante das paredes.Você poderia escrever o mesmo manipulador de eventos MouseEnter para cada uma das paredes.Mas o processo seria demorado, resultaria em várias linhas do mesmo código em seu programa e poderia ser difícil alterar.O IDE oferece uma maneira fácil de conectar-se o mesmo manipulador de eventos para todas as paredes.
Vá para o Windows Forms Designer e a partir de Editar menu, clique em Selecionar tudo.
Mantenha pressionada a tecla CTRL e clique no Concluir o rótulo para limpar a seleção.Isso deve deixar todas as paredes e o painel selecionado.
Agora vá para a tabela de eventos sobre o Propriedades janela.Role para baixo até o evento MouseEnter e clique na caixa de edição próxima a ele.Você deve ver uma seta suspensa.Se você clicar na seta, verá uma lista de todos os manipuladores de eventos no seu programa que você pode escolher para este evento.Nesse caso, você deverá ver o manipulador de eventos finishLabel_MouseEnter que você adicionou anteriormente e o wall_MouseEnter que você acabou de escrever, conforme mostrado na figura a seguir.
Evento MouseEnter com manipuladores de eventos
Selecione wall_MouseEnter.(Se você selecionar o manipulador de eventos errado ou acidentalmente, adicione um novo, você pode selecionar todas as paredes e o painel novamente e em seguida, escolha o método certo.)
Agora seu jogo Labirinto deve ser mais divertido.Tente salvá-lo e executá-lo.Se o ponteiro atinge uma parede ou se você mover o ponteiro para fora do Labirinto e volte outra vez, o programa automaticamente deve reposicione o ponteiro no ponto inicial do labirinto.
Para continuar ou revisar
Para ir para a próxima etapa do tutorial, consulte Etapa 6: Adicionar um SoundPlayer..
Para retornar para a etapa anterior do tutorial, consulte Etapa 4: Adicionar um método para reiniciar o jogo..