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; } }