public void RemoveDocumentWorkspace(DocumentWorkspace documentWorkspace) { int dwIndex = this.documentWorkspaces.IndexOf(documentWorkspace); if (dwIndex == -1) { throw new ArgumentException("DocumentWorkspace was not created with AddNewDocumentWorkspace"); } bool removingCurrentDW; if (this.ActiveDocumentWorkspace == documentWorkspace) { removingCurrentDW = true; this.globalToolTypeChoice = documentWorkspace.GetToolType(); } else { removingCurrentDW = false; } documentWorkspace.SetTool(null); // Choose new active DW if removing the current DW if (removingCurrentDW) { if (this.documentWorkspaces.Count == 1) { this.ActiveDocumentWorkspace = null; } else if (dwIndex == 0) { this.ActiveDocumentWorkspace = this.documentWorkspaces[1]; } else { this.ActiveDocumentWorkspace = this.documentWorkspaces[dwIndex - 1]; } } this.documentWorkspaces.Remove(documentWorkspace); this.toolBar.DocumentStrip.RemoveDocumentWorkspace(documentWorkspace); if (this.initialWorkspace == documentWorkspace) { this.initialWorkspace = null; } // Clean up the DocumentWorkspace Document document = documentWorkspace.Document; documentWorkspace.Document = null; document.Dispose(); documentWorkspace.Dispose(); documentWorkspace = null; }