Hantera användarindata
I det här avsnittet beskrivs de viktigaste tangentbords- och mushändelserna som tillhandahålls av System.Windows.Forms.Control. När du hanterar en händelse bör kontrollförfattare åsidosätta den skyddade metoden On
EventName i stället för att koppla ett ombud till händelsen. För en granskning av händelser, se Utlösande av händelser från en komponent.
Anteckning
Om det inte finns några data som är associerade med en händelse skickas en instans av basklassen EventArgs som ett argument till metoden On
EventName.
Tangentbordshändelser
De vanliga tangentbordshändelserna som kontrollen kan hantera är KeyDown, KeyPressoch KeyUp.
Händelsenamn | Metod för åsidosättning | Beskrivning av händelse |
---|---|---|
KeyDown |
void OnKeyDown(KeyEventArgs) |
Utlöst endast när en tangent trycks ned första gången. |
KeyPress |
void OnKeyPress (KeyPressEventArgs) |
Upphöjt varje gång en nyckel trycks in. Om en nyckel hålls nere genereras en KeyPress händelse med den upprepningsfrekvens som definieras av operativsystemet. |
KeyUp |
void OnKeyUp(KeyEventArgs) |
Utlöses när en nyckel släpps. |
Anteckning
Att hantera tangentbordsindata är betydligt mer komplext än att åsidosätta händelserna i föregående tabell och ligger utanför omfånget för det här ämnet. Mer information finns i Användarindata i Windows Forms.
Mushändelser
Mushändelserna som kontrollen kan hantera är MouseDown, MouseEnter, MouseHover, MouseLeave, MouseMoveoch MouseUp.
Händelsenamn | Metod för åsidosättning | Beskrivning av händelse |
---|---|---|
MouseDown |
void OnMouseDown(MouseEventArgs) |
Utlöses när musknappen trycks in medan pekaren är över kontrollen. |
MouseEnter |
void OnMouseEnter(EventArgs) |
Utlöses när pekaren först kommer in i kontrollens region. |
MouseHover |
void OnMouseHover(EventArgs) |
Upphöjt när pekaren hovrar över kontrollen. |
MouseLeave |
void OnMouseLeave(EventArgs) |
Upphöjt när pekaren lämnar kontrollens region. |
MouseMove |
void OnMouseMove(MouseEventArgs) |
Utlöses när pekaren flyttas inom kontrollens område. |
MouseUp |
void OnMouseUp(MouseEventArgs) |
Upphöjt när musknappen släpps medan pekaren är över kontrollen eller pekaren lämnar kontrollens region. |
Följande kodfragment visar ett exempel på att åsidosätta händelsen MouseDown.
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
Följande kodfragment visar ett exempel på att åsidosätta händelsen MouseMove.
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
Följande kodfragment visar ett exempel på att åsidosätta händelsen MouseUp.
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
Den fullständiga källkoden för FlashTrackBar
-exemplet finns i Så här: Skapa en Windows Forms-kontroll som visar framsteg.
Se även
.NET Desktop feedback