Partilhar via


Manipulando a entrada do usuário

Este tópico descreve os principais eventos de teclado e mouse fornecidos pelo System.Windows.Forms.Control. Ao manipular um evento, os autores do controle devem substituir o método OnEventName protegido em vez de associar um delegado ao evento. Para ver uma análise de eventos, consulte Gerando eventos de um componente.

Observação

Se não houver dados associados a um evento, uma instância da classe EventArgs base será passada como um argumento para o Onmétodo EventName .

Eventos de teclado

Os eventos de teclado comuns que seu controle pode manipular são KeyDown, KeyPresse KeyUp.

Nome do evento Método a ser substituído Descrição do evento
KeyDown void OnKeyDown(KeyEventArgs) Gerado somente quando uma tecla é pressionada pela primeira vez.
KeyPress void OnKeyPress

(KeyPressEventArgs)
Gerado sempre que uma tecla é pressionada. Se uma chave for mantida, um KeyPress evento será gerado na taxa de repetição definida pelo sistema operacional.
KeyUp void OnKeyUp(KeyEventArgs) Gerado quando uma tecla é liberada.

Observação

Manipular a entrada do teclado é consideravelmente mais complexo que substituir os eventos na tabela anterior e está além do escopo deste tópico. Para obter mais informações, consulte Entrada do usuário no Windows Forms.

Eventos de mouse

Os eventos de mouse que seu controle pode manipular são MouseDown, , , , MouseLeaveMouseMoveMouseEnterMouseHovere .MouseUp

Nome do evento Método a ser substituído Descrição do evento
MouseDown void OnMouseDown(MouseEventArgs) Gerado quando o botão do mouse é pressionado enquanto o ponteiro está sobre o controle.
MouseEnter void OnMouseEnter(EventArgs) Gerado quando o ponteiro entra pela primeira vez na região do controle.
MouseHover void OnMouseHover(EventArgs) Gerado quando o ponteiro do mouse focaliza o controle.
MouseLeave void OnMouseLeave(EventArgs) Gerado quando o ponteiro do mouse deixa a região do controle.
MouseMove void OnMouseMove(MouseEventArgs) Gerado quando o ponteiro do mouse se move na região do controle.
MouseUp void OnMouseUp(MouseEventArgs) Gerado quando o botão do mouse é liberado enquanto o ponteiro está sobre o controle ou o ponteiro sai da região do controle.

O fragmento de código a seguir mostra um exemplo de substituição do MouseDown evento.

protected override void OnMouseDown(MouseEventArgs e) {
    base.OnMouseDown(e);
    if (!allowUserEdit) {
        return;
    }
    Capture = true;
    dragging = true;
    SetDragValue(new Point(e.X, e.Y));
}
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    If Not (myAllowUserEdit) Then
        Return
    End If
    Capture = True
    dragging = True
    SetDragValue(New Point(e.X, e.Y))
End Sub

O fragmento de código a seguir mostra um exemplo de substituição do MouseMove evento.

protected override void OnMouseMove(MouseEventArgs e) {
    base.OnMouseMove(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    SetDragValue(new Point(e.X, e.Y));
}
Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
    MyBase.OnMouseMove(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    SetDragValue(New Point(e.X, e.Y))
End Sub

O fragmento de código a seguir mostra um exemplo de substituição do MouseUp evento.

protected override void OnMouseUp(MouseEventArgs e) {
    base.OnMouseUp(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    Capture = false;
    dragging = false;
    value = dragValue;
    OnValueChanged(EventArgs.Empty);
}
Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    Capture = False
    dragging = False
    Value = dragValue
    OnValueChanged(EventArgs.Empty)
End Sub

Para ver o código-fonte completo para o exemplo FlashTrackBar, consulte Como criar um controle do Windows Forms que mostra o progresso.

Confira também