Compartilhar via


Como a entrada do mouse funciona nos Windows Forms

Receber e manipular entradas de mouse é uma parte importante qualquer aplicativo do Windows. Você pode manipular eventos de mouse para executar uma ação em seu aplicativo ou usar informações sobre a localização do mouse para executar testes de clique ou outras ações. Além disso, é possível alterar a maneira como os controles em seu aplicativo manipulam as entradas de mouse. Este tópico descreve esses eventos de mouse de forma detalhada, bem como obter e alterar configurações do sistema para o mouse. Para obter mais informações sobre os dados fornecidos com os eventos de mouse e a ordem em que os eventos de clique do mouse são gerados, consulte Eventos de mouse nos Windows Forms.

Localização do mouse e teste de clique

Quando o usuário move o mouse, o sistema operacional move o ponteiro do mouse. O ponteiro do mouse contém um único pixel, chamado de ponto de acesso, que o sistema operacional rastreia e reconhece como a posição do ponteiro. Quando o usuário move o mouse ou pressiona um botão do mouse, o que contém o gera o Control HotSpot evento de mouse apropriado. Você pode obter a posição atual do mouse com a propriedade do ao manipular um evento do mouse ou usando a Location MouseEventArgs Position Cursor propriedade da classe. Posteriormente, você pode usar informações sobre a localização do mouse para executar o teste de clique e, em seguida, executar uma ação com base na localização do mouse. O recurso de teste de acertos é incorporado a vários controles no Windows Forms, como os ListViewcontroles , TreeViewe DataGridView . MonthCalendar Usado com o evento de mouse apropriado, por exemplo, MouseHover o teste de acertos é muito útil para determinar quando seu aplicativo deve executar uma ação específica.

Eventos de mouse

A principal maneira de responder a entradas de mouse é manipular eventos de mouse. A tabela a seguir mostra os eventos de mouse e descreve quando eles são gerados.

Evento de mouse Descrição
Click Esse evento ocorre quando o botão do mouse é liberado, normalmente antes do MouseUp evento. O manipulador desse evento recebe um argumento do tipo EventArgs. Manipule este evento quando você só precisar determinar quando um clique ocorrer.
MouseClick Este evento ocorre quando o usuário clica no controle com o mouse. O manipulador desse evento recebe um argumento do tipo MouseEventArgs. Manipule este evento quando você precisar obter informações sobre o mouse quando um clique ocorrer.
DoubleClick Este evento ocorre quando um usuário clica duas vezes no controle. O manipulador desse evento recebe um argumento do tipo EventArgs. Manipule este evento quando você só precisar determinar quando um clique duplo ocorrer.
MouseDoubleClick Este evento ocorre quando o usuário clica duas vezes no controle com o mouse. O manipulador desse evento recebe um argumento do tipo MouseEventArgs. Manipule este evento quando você precisar obter informações sobre o mouse quando um clique duplo ocorrer.
MouseDown Este evento ocorre quando o ponteiro do mouse está sobre o controle e um botão do mouse é pressionado. O manipulador desse evento recebe um argumento do tipo MouseEventArgs.
MouseEnter Este evento ocorre quando o ponteiro do mouse entra na borda ou na área de cliente do controle, dependendo do tipo de controle. O manipulador desse evento recebe um argumento do tipo EventArgs.
MouseHover Este evento ocorre quando o ponteiro do mouse para e permanece sobre o controle. O manipulador desse evento recebe um argumento do tipo EventArgs.
MouseLeave Este evento ocorre quando o ponteiro do mouse deixa a borda ou a área de cliente do controle, dependendo do tipo de controle. O manipulador desse evento recebe um argumento do tipo EventArgs.
MouseMove Este evento ocorre quando o ponteiro do mouse se move enquanto está sobre um controle. O manipulador desse evento recebe um argumento do tipo MouseEventArgs.
MouseUp Este evento ocorre quando o ponteiro do mouse está sobre o controle e o usuário libera um botão do mouse. O manipulador desse evento recebe um argumento do tipo MouseEventArgs.
MouseWheel Este evento ocorre quando o usuário gira o botão de rolagem do mouse enquanto o controle está em foco. O manipulador desse evento recebe um argumento do tipo MouseEventArgs. Você pode usar a Delta propriedade de MouseEventArgs para determinar até onde o mouse rolou.

Alterando a entrada do mouse e detectando as configurações do sistema

Você pode detectar e alterar a maneira como um controle manipula a entrada do mouse derivando do controle e usando os GetStyle métodos e SetStyle . O SetStyle método usa uma combinação bit a bit de valores para determinar se o controle terá o comportamento padrão de ControlStyles clique ou clique duplo ou se o controle manipulará seu próprio processamento do mouse. Além disso, a SystemInformation classe inclui propriedades que descrevem os recursos do mouse e especificam como o mouse interage com o sistema operacional. A tabela a seguir resume essas propriedades.

Propriedade Descrição
DoubleClickSize Obtém as dimensões, em pixels, da área em que o usuário deve clicar duas vezes para que o sistema operacional considere os dois cliques um clique duplo.
DoubleClickTime Obtém o número máximo de milissegundos que pode decorrer entre um primeiro clique e um segundo clique para que o sistema operacional considere a ação do mouse um clique duplo.
MouseButtons Obtém o número de botões do mouse.
MouseButtonsSwapped Obtém um valor que indica se as funções dos botões esquerdo e direito do mouse foram trocadas.
MouseHoverSize Obtém as dimensões, em pixels, do retângulo no qual o ponteiro do mouse deve permanecer pelo tempo de foco do mouse antes que uma mensagem de foco do mouse seja gerada.
MouseHoverTime Obtém o tempo, em milissegundos, que o ponteiro do mouse deve permanecer no retângulo de foco antes que uma mensagem de foco do mouse seja gerada.
MousePresent Obtém um valor que indica se um mouse está instalado.
MouseSpeed Obtém um valor que indica a velocidade atual do mouse, de 1 a 20.
MouseWheelPresent Obtém um valor que indica se um mouse com botão de rolagem está instalado.
MouseWheelScrollDelta Obtém o valor delta do incremento de uma única rotação da roda do mouse.
MouseWheelScrollLines Obtém o número de linhas a rolar quando o botão de rolagem do mouse é girado.

Confira também