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. Para obter mais informações, consulte Visão geral dos Manipuladores de Eventos (Formulários do Windows) e Visão Geral dos Eventos (Formulários do Windows) e Visão geral dos Manipuladores de Eventos (Formulários do Windows) e Visão Geral dos Eventos (Formulários do Windows) e Visão geral dos Manipuladores de Eventos (Formulários do Windows) e Visão Geral dos Eventos (Formulários do Windows) e Visão geral dos Manipuladores de Eventos (Formulários do Windows) e Visão Geral dos Eventos (Formulários do Windows).

Informação sobre o Mouse

A MouseEventArgs é enviada para os manipuladores de eventos de mouse relacionados ao clicar em um botão do mouse e controlando os movimentos do mouse. MouseEventArgsFornece informações sobre o estado atual do mouse, incluindo o local do ponteiro do mouse nas coordenadas do cliente, o que os botões do mouse são pressionados e se a roda do mouse tenha 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 atual dos botões do mouse ou o local do ponteiro do mouse e você desejar evitar manipulando um evento de mouse, você também pode usar o MouseButtons e MousePosition Propriedades da Control classe. MouseButtonsRetorna informações sobre quais botões do mouse são pressionados atualmente. 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 nos controles de formulários do Windows.

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çãoObservação

    Se o usuário move o ponteiro do mouse para fora do controle alternado enquando o botão do mouse está pressionado (como tirar o mouse de cima do controle Button enquanto ele está pressionado), o controle alternado se pintará no estado solto e somento o evento MouseUp 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