/// <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;
}
}