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 On
EventName 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 On
mé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
.NET Desktop feedback