private void OnSlidePanelDisposed(object sender, EventArgs e)
{
// Unhook from events so the control can be garbage collected
_slidePanel.SplitterMoveRect -= new EventHandler<SplitterMoveRectMenuArgs>(OnSlidePanelSeparatorMoveRect);
_slidePanel.SplitterMoved -= new SplitterEventHandler(OnSlidePanelSeparatorMoved);
_slidePanel.SplitterMoving -= new SplitterCancelEventHandler(OnSlidePanelSeparatorMoving);
_slidePanel.PageCloseClicked -= new EventHandler<UniqueNameEventArgs>(OnSlidePanelPageCloseClicked);
_slidePanel.PageAutoHiddenClicked -= new EventHandler<UniqueNameEventArgs>(OnSlidePanelPageAutoHiddenClicked);
_slidePanel.PageDropDownClicked -= new EventHandler<CancelDropDownEventArgs>(OnSlidePanelPageDropDownClicked);
_slidePanel.Disposed -= new EventHandler(OnPanelDisposed);
// Events are generated from the parent docking manager
KryptonDockingManager dockingManager = DockingManager;
if (dockingManager != null)
{
// Only generate the removed event if we have already fired the adding event.
if (_panelEventFired)
{
DockspaceEventArgs dockspaceArgs = new DockspaceEventArgs(_slidePanel.DockspaceControl, null);
DockspaceSeparatorEventArgs separatorArgs = new DockspaceSeparatorEventArgs(_slidePanel.SeparatorControl, null);
dockingManager.RaiseDockspaceRemoved(dockspaceArgs);
dockingManager.RaiseDockspaceSeparatorRemoved(separatorArgs);
}
}
// Make sure the groups panel is also disposed
if (!_panel.IsDisposed)
_panel.Dispose();
}