/// <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>
/// <exception cref="ArgumentNullException"></exception>
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.Enter:
case Keys.Space:
// Only interested in enabled items
if (_menuLinkLabel.ItemEnabled)
{
PressMenuLinkLabel(true);
}
break;
case Keys.Tab:
ViewManager.KeyTab(e.Shift);
break;
case Keys.Home:
ViewManager.KeyHome();
break;
case Keys.End:
ViewManager.KeyEnd();
break;
case Keys.Up:
ViewManager.KeyUp();
break;
case Keys.Down:
ViewManager.KeyDown();
break;
case Keys.Left:
ViewManager.KeyLeft(true);
break;
case Keys.Right:
ViewManager.KeyRight();
break;
}
}