private void dockPanel_ActiveContentChanged(object sender, EventArgs e)
        {
            DockContent activeContent = m_dockPanel.ActiveContent as DockContent;

            if (activeContent != m_activeDockContent)
            {
                if (m_activeDockContent != null &&
                    m_activeDockContent.Controls.Count > 0)
                {
                    DockPaneStripBase dockPaneStrip = GetDockPaneStripBase(m_activeDockContent);
                    if (dockPaneStrip != null)
                    {
                        dockPaneStrip.MouseUp -= new MouseEventHandler(dockPaneStrip_MouseUp);
                    }
                    DeactivateClient(m_activeDockContent.Controls[0]);
                }

                if (activeContent != null &&
                    activeContent.Controls.Count > 0)
                {
                    ActivateClient(activeContent.Controls[0]);

                    ControlInfo activeControlInfo = FindControlInfo(activeContent.Controls[0]);
                    if (activeControlInfo != null)
                    {
                        m_controls.ActiveItem = activeControlInfo;
                    }

                    // update the InActiveGroup property for all registered controls
                    DockPane activePane = activeContent.Pane;
                    foreach (ControlInfo controlInfo in m_controls)
                    {
                        controlInfo.InActiveGroup = activePane.Contains(controlInfo.HostControl);
                    }

                    DockPaneStripBase dockPaneStrip = GetDockPaneStripBase(activeContent);
                    if (dockPaneStrip != null)
                    {
                        dockPaneStrip.MouseUp += new MouseEventHandler(dockPaneStrip_MouseUp);
                    }
                }

                m_activeDockContent = activeContent;
            }
        }