internal void OnGotFocus(EventArgs e)
        {
            if (m_focusedControl != null)
            {
                m_focusedControl.OnEnter();
            }
            else
            {
                if (Control.ModifierKeys != Keys.Shift)
                {
                    m_focusedControl = GetNextControl(null);
                }
                else
                {
                    m_focusedControl = GetPrevControl(null);
                }

                if (m_focusedControl != null)
                {
                    m_focusedControl.OnEnter();
                }
            }
        }
        private void Select(ControlRect control)
        {
            var rect = ParentControlRect;

            if (rect != null)
            {
                ((ControlRect)rect).Select(control);
            }
            else
            {
                if (m_focusedControl != null)
                {
                    m_focusedControl.OnLeave();
                }
                m_focusedControl = control;
                m_focusedControl.OnEnter();
            }
        }
        public void SelectPrev()
        {
            var rect = ParentControlRect;

            if (rect != null)
            {
                ((ControlRect)rect).SelectPrev();
            }
            else
            {
                if (m_focusedControl != null)
                {
                    m_focusedControl.OnLeave();
                }
                m_focusedControl = GetPrevControl(m_focusedControl);
                if (m_focusedControl != null)
                {
                    m_focusedControl.OnEnter();
                }
            }
        }