protected override void btnDeleteTask_Click(object sender, EventArgs e) { btnDeleteTask.Enabled = false; try { int?selectedKey = rgvTasks.SelectedValue as int?; if (selectedKey.HasValue) { int taskId = Convert.ToInt32(rgvTasks.SelectedRow.Cells["Id"].Value); string taskName = Convert.ToString(rgvTasks.SelectedRow.Cells["Name"].Value); if (MessageBox.Show($"Удалить задание: [{taskName}] ?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var res = MQueryCommand.TryDeletePluginTask(taskId); if (!res.IsComplete) { MessageBox.Show(res.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } else { int oldIndex = rgvTasks.SelectedRow.Index < 0 ? 0 : rgvTasks.SelectedRow.Index; int index = rgvTasks.SelectedRow.Index - 1 < 0 ? 0 : rgvTasks.SelectedRow.Index - 1; rgvTasks.dataGridView.Rows[index].Selected = true; Thread.Sleep(300); RefreshGrid(MQueryCommand.SelectShedulerPluginTasksGrid()); rgvTasks.dataGridView.Invalidate(); } } } } finally { btnDeleteTask.Enabled = true; } }