public void DeleteDevice() { GCDevice device = _deviceView.GetSelectedDevice(); if (device == null) { return; } base.SetStatus("Deleting device."); if (_interfaceMgt.HasInterface(device.DeviceID)) { MessageBox.Show(frmMain, "There are some interface(s) based on this device. Please delete the device after uninstalling these interface(s).", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (MessageBox.Show(frmMain, "Device can not be restored after delete. Are you sure to delete device : " + device.ToString() + " ?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { frmMain.Cursor = Cursors.WaitCursor; bool result = _deviceManager.DeleteDevice(device); frmMain.Cursor = Cursors.Default; if (result) { Program.Log.Write("{Device} Delete device (" + device.ToString() + ") succeed : " + device.FolderPath); _deviceView.RefreshView(); } else { Program.Log.Write(LogType.Warning, "{Device} Delete device (" + device.ToString() + ") failed : " + GCError.LastErrorInfor); Program.Log.Write(GCError.LastError); MessageBox.Show(frmMain, "Delete device (" + device.ToString() + ") failed.\r\n\r\n" + GCError.LastErrorInfor, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } base.ClearStatus(); }