ComponentFactory.Krypton.Toolkit.MenuItemController.KeyDown C# (CSharp) Method

KeyDown() public method

Key has been pressed down.
public KeyDown ( Control c, KeyEventArgs e ) : void
c System.Windows.Forms.Control Reference to the source control instance.
e System.Windows.Forms.KeyEventArgs A KeyEventArgs that contains the event data.
return void
        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("c");
            if (e == null)  throw new ArgumentNullException("e");

            switch (e.KeyCode)
            {
                case Keys.Enter:
                case Keys.Space:
                    // Only interested in enabled items
                    if (_menuItem.ItemEnabled)
                    {
                        // Do we press the item or show the sub menu?
                        if (!_menuItem.HasSubMenu)
                            PressMenuItem();
                        else
                            _menuItem.ShowSubMenu(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:
                    // We wrap if are the first context menu shown, rather than a sub menu showing
                    if (_viewManager.KeyLeft(!_menuItem.HasParentMenu))
                    {
                        // User tried to fall off the left edge, so dismiss ourself and let the
                        // keyboard access take us back to the owning context menu instance
                        _menuItem.DisposeContextMenu();
                    }
                    break;
                case Keys.Right:
                    // If enabled and with a sub menu, then show the sub menu
                    if (_menuItem.ItemEnabled && _menuItem.HasSubMenu)
                        _menuItem.ShowSubMenu(true);
                    else
                        _viewManager.KeyRight();
                    break;
            }
        }