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
.NET Desktop feedback