/// <summary> /// Key has been pressed down. /// </summary> /// <param name="c">Reference to the source control instance.</param> /// <param name="e">A KeyEventArgs that contains the event data.</param> public virtual void KeyDown(Control c, KeyEventArgs e) { Debug.Assert(c != null); Debug.Assert(e != null); // Validate incoming references if (c == null) { throw new ArgumentNullException(nameof(c)); } if (e == null) { throw new ArgumentNullException(nameof(e)); } switch (e.KeyCode) { case Keys.Up: _layout.TrackMoveUp(); break; case Keys.Down: _layout.TrackMoveDown(); break; case Keys.Left: _layout.TrackMoveLeft(); break; case Keys.Right: _layout.TrackMoveRight(); break; case Keys.Home: _layout.TrackMoveHome(); break; case Keys.End: _layout.TrackMoveEnd(); break; case Keys.PageDown: _layout.TrackMovePageDown(); break; case Keys.PageUp: _layout.TrackMovePageUp(); break; case Keys.Enter: case Keys.Space: // Can only click if enabled if (_target.Enabled) { // Generate a click event OnClick(new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0)); } break; } }