private void OnDelete(TreeNode node) { // Prompt first. string promptText = "Are you sure you want to delete '" + node.Text + "'?"; if (MessageBox.Show(promptText, "Confirm deletion", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) { return; } // Delete the element itself. IElementPropertyInfo elementInfo = node.Tag as IElementPropertyInfo; if (elementInfo == null) { return; } elementInfo.DeleteElement(); OnElementChanged(); // Delete the node. ClearCurrentPage(); TreeNode parentNode = node.Parent; tvwElements.Nodes.Remove(node); tvwElements.Focus(); tvwElements.Select(); tvwElements.SelectedNode = parentNode; }