private void DoDelete() { if (_list.SelectedItems.Count != 1) { return; } var lvi = _list.SelectedItems[0]; var name = lvi.Text; var type = (NotebookItemType)Enum.Parse(typeof(NotebookItemType), lvi.Group.Name); // can't delete tables or views if an operation is in progress bool isTableOrView = type == NotebookItemType.Table || type == NotebookItemType.View; if (isTableOrView && _operationInProgress) { MessageForm.ShowError(_mainForm, "Delete Item", "Cannot delete tables or views while an operation is in progress.", "Please wait until the current operation finishes, and then try again."); return; } var deleteBtn = "&Delete"; var d = new MessageForm { Title = "Delete Item", Message = $"Are you sure you want to delete \"{name}\"?", Buttons = new[] { deleteBtn, "Cancel" }, Icon = Resources.Warning32 }; if (d.ShowDialog(this) != deleteBtn) { return; } var item = new NotebookItem(type, name); _manager.CloseItem(item); new WaitForm("Delete", "Deleting the selected item...", () => { _manager.DeleteItem(item); }).ShowDialogAndDispose(this); _manager.Rescan(notebookItemsOnly: !isTableOrView); }