private void deleteToolStripMenuItem_Click(object sender, EventArgs e) { TreeNode node = SelectedNode(); if (node == null) { return; } DotaDataObject ddo = node.Tag as DotaDataObject; if (ddo == null) { return; //It's a folder, we cant delete this. } if (ddo.ObjectInfo.ObjectClass == DotaDataObject.DataObjectInfo.ObjectDataClass.Default) { return; //Can't delete default objects } if (MessageBox.Show("Are you sure? This cannot be undone", "Delete Object", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { //Get the document for this and close the editors Document doc = DocumentRegistry.GetDocumentFor(ddo); if (doc != null) { doc.CloseAllEditors(false); } IList list = DotaData.FindListThatHasObject(ddo); list.Remove(ddo); //remove this node from the tree view node.Parent.Nodes.Remove(node); //And it's gone! } }