Example #1
0
        void VMembers_KeyDown(Block Block, System.Windows.Forms.KeyEventArgs e)
        {
            Block nextFocusable = null;

            switch (e.KeyCode)
            {
            case System.Windows.Forms.Keys.Left:
                nextFocusable = VMembers.FindPrevFocusableBlockInChain();
                if (nextFocusable != null && nextFocusable.IsInStrictSubtreeOf(this))
                {
                    nextFocusable.SetCursorToTheEnd();
                    e.Handled = true;
                    return;
                }
                break;

            case System.Windows.Forms.Keys.Up:
            //Let's select ourselves each time we're going up
            //if (HMembers != null && HMembers.GetFirstFocusableChild() != null)
            //{
            //    nextFocusable = HMembers.GetFirstFocusableChild();
            //}
            case System.Windows.Forms.Keys.Home:
                nextFocusable = this;
                if (!this.CanGetFocus)
                {
                    nextFocusable = this.FindNearestFocusableParent();
                }
                break;

            default:
                break;
            }

            if (nextFocusable != null && nextFocusable.CanGetFocus)
            {
                nextFocusable.SetFocus();
                e.Handled = true;
            }

            RaiseKeyDown(e);
        }