Eventos do Mouse nos Formulários do Windows

Quando você manipula a entrada do mouse, você normalmente quer saber a localização do ponteiro e o estado dos botões do mouse.Este tópico fornece detalhes sobre como obter esta informação de eventos do mouse e explica a ordem em que os eventos do mouse são gerados em controles dos Formulários do Windows.Para uma lista e descrição de todos os eventos do mouse, veja Como a entrada do mouse funciona em Formulários do Windows.

Informação sobre o Mouse

A MouseEventArgs é enviada para os manipuladores de eventos de mouse relacionados a clicar em um botão do mouse e rastrear os movimentos do mouse. MouseEventArgs Fornece informações sobre o estado corrente do mouse, incluindo o local do ponteiro do mouse em coordenadas de cliente que botões do mouse são pressionados e se a roda do mouse tiver rolado. Muitos eventos do mouse, como aqueles que simplesmente avisam quando o ponteiro do mouse entrou ou saiu do limite de um controle, enviam um EventArgs ao manipulador do evento sem mais informações.

Se você deseja saber o estado corrente de botões do mouse ou o local do ponteiro do mouse e você desejar evitar manipular um evento de mouse, você também pode usar o MouseButtons e MousePosition propriedades das Control classe. MouseButtons Retorna informações sobre quais botões do mouse são pressionados no momento. MousePosition retorna as coordenadas na tela do ponteiro do mouse e é equivalente ao valor returnado por Position.

Convertendo entre Coordenadas da Tela e do Cliente

Como algumas informações sobre a localização do mouse estão em coordenadas do cliente e outras em coordenadas da tela, você pode querer converter um ponto de um sistema de coordenadas para o outro.Você pode fazer isto facilmente usando os métodos PointToClient e PointToScreen disponíveis na classe Control.

Comportamento Padrão de Eventos de Clique

Se você quiser manipular eventos de clique do mouse na ordem apropriada, você deve saber a ordem em que os eventos de clique são gerados nos controles dos Formulários do Windows.Todos os controles dos Formulários do Windows geram eventos na mesma ordem quando um botão do mouse é pressionado e solto (independentemente do botão do mouse), exceto onde anotado na lista a seguir em controles individuais.A lista a seguir mostra a ordem dos eventos gerados por um único clique de um botão do mouse:

  1. Evento MouseDown.

  2. Evento Click.

  3. Evento MouseClick.

  4. Evento MouseUp.

A seguir está a ordem dos eventos gerados por um duplo clique de um botão do mouse:

  1. Evento MouseDown.

  2. Evento Click.

  3. Evento MouseClick.

  4. Evento MouseUp.

  5. Evento MouseDown.

  6. Evento DoubleClick.(Isto pode variar, dependendo de se o controle em questão tem o bit de estilo StandardDoubleClick definido como true.Para mais informações sobre como definir um bit de ControlStyles, veja o método SetStyle.)

  7. Evento MouseDoubleClick.

  8. Evento MouseUp.

Para um código exemplo que mostra a ordem dos eventos de clique do mouse, consulte Como: Manipular eventos de entrada do usuário in Windows Forms Controls.

Controles Individuais

Os controles a seguir não seguem o comportamento padrão de clique do mouse:

Comportamento de Pintura dos Controles Alternados

Controles alternados, como os que derivam da classe ButtonBase, tem o seguinte comportamento de pintura distinto em combinação com os eventos de clique do mouse:

  1. O usuário pressiona o botão do mouse.

  2. O controle se pinta no estado pressionado.

  3. O evento MouseDown é gerado.

  4. O usuário solta o botão do mouse.

  5. O controle se pinta no estado solto.

  6. O evento Click é gerado.

  7. O evento MouseClick é gerado.

  8. O evento MouseUp é gerado.

    Observação:

    Se o usuário move o ponteiro fora do controle alternância enquanto o mouse botão do mouse está pressionado (por exemplo, mover o mouse fora o Button controlar enquanto estiver pressionado), o controle de alternância será pintar o elevado estado e somente o MouseUp evento ocorre. Os eventos Click ou MouseClick não ocorrerão nesta situação.

Consulte também

Outros recursos

Entrada do Mouse em um Aplicativo de Formulários do Windows