Tastatur- und Mausereignisse: Mausereignisse für Tasten
Um Tastendrücke der Maus festzustellen, gibt es die Ereignisse MouseClick, MouseDoubleClick, MouseDown und MouseUp sowie Click und DoubleClick. Bei einem einfachen Mausklick lösen die Events in folgender Reihenfolge aus: MouseDown, Click, MouseClick und MouseUp. Bei einem Doppelklick hingegen ist die Reihenfolge wie folgt: MouseDown, Click, MouseClick, MouseUp, MouseDown, DoubleClick, MouseDoubleClick, MouseUp.
Die Events MouseClick, MouseDoubleClick, MouseDown und MouseUp lösen unabhängig von der gedrückten Taste aus, d. h. das Ereignis löst sowohl beim Linksklick als auch beim Rechtsklick aus sowie bei einem Klick auf eine Spezialmaustaste. Wie der Name schon vermuten lässt, löst MouseClick bei einem einfachen Mausklick aus. MouseDoubleClick dagegen bei einem Doppelklick. MouseDown löst aus, sobald eine Maustaste gedrückt wurde. MouseUp hingegen sobald die Maustaste wieder losgelassen wurde. Zu beachten ist (wie bereits oben bei der Reihenfolge genannt), dass bei einem Doppelklick das MouseDown- und MouseUp-Event doppelt ausgelöst wird. Allen vier Funktionen werden Event-Argumente der Klasse MouseEventArgs übergeben. Über die Eigenschaft Button können wir einen Wert der Enumeration MouseButtons abrufen, welche die geklickte Taste enthält. Mit der Eigenschaft Clicks können die Anzahl der Tastendrücke abgerufen werden.
Die Ereignisse Click und DoubleClick sind Ereignisse, welche ebenfalls der Control-Klasse angehören, jedoch nur in bestimmten Fällen auslösen. Ob ein Ereignis ausgelöst wird, hängt von der gedrückten Taste und dem Steuerelement ab. So löst bei einem Button, einer CheckBox oder einem RadioButton das Click-Event nur aus, wenn die linke Maustaste gedrückt wurde. Das DoubleClick-Event löst bei diesen Steuerelementen nie aus. Bei den Steuerelementen ListBox, ComboBox, TextBox und NumericUpDown werden hingegen die Ereignisse Click und DoubleClick ausgelöst, wenn die linke Maustaste gedrückt wurde. Beim Steuerelement ProgressBar wird das Click-Event unabhängig von der Maustaste ausgelöst. Bei den Steuerelementen Form, Label, Panel, GroupBox, PictureBox und TabPage werden sowohl das Click- als auch das DoubleClick-Ereignis unabhängig von der Maustaste ausgelöst.
Form1.cs
private void label_MouseClick(object sender, MouseEventArgs e) { string sTaste = ""; switch (e.Button) { case System.Windows.Forms.MouseButtons.Left: sTaste = "linke Taste"; break; case System.Windows.Forms.MouseButtons.Right: sTaste = "rechte Taste"; break; case System.Windows.Forms.MouseButtons.Middle: sTaste = "mittlere Taste"; break; case System.Windows.Forms.MouseButtons.XButton1: sTaste = "zusätzliche Taste 1"; break; case System.Windows.Forms.MouseButtons.XButton2: sTaste = "zusätzliche Taste 2"; break; } MessageBox.Show("Sie haben " + e.Clicks + " Mal geklickt (" + sTaste + ")!"); }