Partilhar via


Como a entrada do mouse funciona em Formulários do Windows

Receber e tratar a entrada do mouse é uma parte importante de todos os aplicativos do Windows. Você pode manipular eventos do mouse para executar uma ação em seu aplicativo, ou usar informações sobre o local do mouse para executar um teste de clique ou outras ações. Além disso, você pode alterar a maneira como os controles de seu aplicativo manipulam a entrada do mouse. Este tópico descreve esses eventos do mouse em detalhes e como obter e alterar configurações do sistema para o mouse. Para obter mais informações sobre os dados fornecidos com eventos do mouse e a ordem na qual os eventos de clique do mouse são gerados, consulte Eventos do Mouse nos Formulários do Windows.

Localização do Mouse e Teste de Acerto

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 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 Control que contém o HotSpot gera o evento apropriado do mouse. Você pode obter a posição atual do mouse com a propriedade Location do MouseEventArgs quando estiver manipulando um evento do mouse ou usando a propriedade Position da classe Cursor. Você pode usar informações sobre o local do mouse em seguida para executar testes de acerto e executar uma ação com base no local do mouse. Capacidade de teste de acerto é interna a vários controles nos Formulários do Windows como os controles ListView, TreeView, MonthCalendar e DataGridView. Usado com o evento apropriado do mouse, MouseHover por exemplo, o teste de acerto é muito útil para determinar quando o aplicativo deve executar uma ação específica.

Eventos do Mouse

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

Evento do Mouse

Descrição

Click

Este evento ocorre quando o botão do mouse é solto, normalmente antes do evento MouseUp. O manipulador deste evento recebe um argumento do tipo EventArgs. Manipule neste evento quando você só precisa determinar quando ocorre um clique.

MouseClick

Esse evento ocorre quando o usuário clica em um controle com o mouse. O manipulador deste evento recebe um argumento do tipo MouseEventArgs. Manipule neste evento quando precisar obter informações sobre o mouse quando ocorre um clique.

DoubleClick

Esse evento ocorre quando o controle é clicado duas vezes. O manipulador deste evento recebe um argumento do tipo EventArgs. Manipule neste evento quando você só precisa determinar quando ocorre um clique duplo.

MouseDoubleClick

Esse evento ocorre quando o usuário clica duas vezes em um controle com o mouse. O manipulador deste evento recebe um argumento do tipo MouseEventArgs. Manipule neste evento quando precisar obter informações sobre o mouse quando ocorre um duplo clique.

MouseDown

Esse evento ocorre quando o ponteiro do mouse está sobre o controle e o usuário pressiona um botão do mouse. O manipulador deste evento recebe um argumento do tipo MouseEventArgs.

MouseEnter

Esse evento ocorre quando o ponteiro do mouse entra na borda ou área cliente do controle, dependendo do tipo de controle. O manipulador deste evento recebe um argumento do tipo EventArgs.

MouseHover

Esse evento ocorre quando o ponteiro do mouse para e permanece sobre o controle. O manipulador deste evento recebe um argumento do tipo EventArgs.

MouseLeave

Esse evento ocorre quando o ponteiro do mouse sai da borda ou área cliente do controle, dependendo do tipo de controle. O manipulador deste evento recebe um argumento do tipo EventArgs.

MouseMove

Este evento ocorre quando o ponteiro do mouse se move enquanto ele está sobre um controle. O manipulador deste evento recebe um argumento do tipo MouseEventArgs.

MouseUp

Este evento ocorre quando o ponteiro do mouse está sobre o controle e o usuário solta um botão do mouse. O manipulador deste evento recebe um argumento do tipo MouseEventArgs.

MouseWheel

Este evento ocorre quando o usuário gira a roda do mouse enquanto o controle tem foco. O manipulador deste evento recebe um argumento do tipo MouseEventArgs. Você pode usar a propriedade Delta de MouseEventArgs para determinar quanto o mouse foi rolado.

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 métodos GetStyle e SetStyle. O método SetStyle utiliza um combinação bit a bit dos valores ControlStyles para determinar se o controle terá comportamento de clique padrão ou de clique duplo ou se o controle manipulará seu próprio processamento do mouse. Além disso, a classe SystemInformation inclui propriedades que descrevem os recursos do mouse e especificar como o mouse interage com o sistema operacional. A tabela a seguir resume estas propriedades.

Propriedade

Descrição

DoubleClickSize

Obtém as dimensões, em pixels, da área em que o usuário deve clicar duas vezes para o sistema operacional para considerar os dois cliques um clique duplo.

DoubleClickTime

Obtém o número máximo de milissegundos que pode passar entre um primeiro clique em e um segundo em para o sistema operacional para considerar a ação do mouse um clique duplo.

MouseButtons

Obtém o número de botões no mouse.

MouseButtonsSwapped

Obtém um valor indicando 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 dentro do qual o ponteiro do mouse tem que ficar 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 indicando se um mouse está instalado.

MouseSpeed

Obtém um valor indicando a velocidade do mouse atual, de 1 a 20.

MouseWheelPresent

Obtém um valor indicando se um mouse com roda está instalado.

MouseWheelScrollDelta

Obtém o valor de incremento correspondente a uma única de rotação da roda do mouse.

MouseWheelScrollLines

Obtém o número de linhas para rolar quando a roda do mouse for girada.

Consulte também

Conceitos

Captura do Mouse em Formulários do Windows

Ponteiros do Mouse em Formulários do Windows

Outros recursos

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