/// <summary> /// Удалить выделенную операцию /// </summary> /// <param name="sender">Объект, пославший сообщение</param> /// <param name="e">Объект, содержащий данные посланного сообщения</param> private void buttonDelete_Click(object sender, EventArgs e) { try { int currentNumber = OperationList.CurrentCellAddress.Y; if (currentNumber < 0) { MessageBox.ShowDialog("Нет выделенных записей", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } COperation operationInfo = GetSelectedOperation(); if (operationInfo.OpenedOperationViewForm != null && !operationInfo.OpenedOperationViewForm.IsDisposed) { MessageBox.ShowDialog("Данная операция заблокирована для удаления,\r\nтак как она в данный момент редактируется.\r\nЗакройте окно просмотра информации по данной операции\r\nи попробуйте ещё раз.", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); operationInfo.OpenedOperationViewForm.Focus(); return; } if (DialogResult.Yes == MessageBox.ShowDialog("Вы уверены, что хотите удалить все данные об операции " + OperationList.Rows[currentNumber].Cells[1].Value + "?\r\nДанная операция необратима.", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { _operationWorker.Remove(Convert.ToInt32(OperationList.Rows[currentNumber].Cells[0].Value)); } ShowOperations(); } catch (Exception ex) { MessageBox.ShowDialog(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Сохранение изменений при закрытие формы, если надо /// </summary> /// <param name="sender">Объект, пославший сообщение</param> /// <param name="e">Объект, содержащий данные посланного сообщения</param> private void OperationViewForm_FormClosing(object sender, FormClosingEventArgs e) { if (!_isFormClosingByButton) { DialogResult dialogResult = MessageBox.ShowDialog("Вы хотите сохранить изменения?", "Закрытие окна", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (dialogResult == DialogResult.Yes) { _isNeedSaveData = true; } else if (dialogResult == DialogResult.No) { _isNeedSaveData = false; } else { e.Cancel = true; return; } } _isFormClosingByButton = false; // Если все проверки при закрытии формы пройдены и форму закрыли с сохранением данных - // то сохраняем данные if (_isNeedSaveData) { _isNeedSaveData = false; if (IsFormHasEmptyNeededFields()) { MessageBox.ShowDialog("Поля, отмеченные звёздочкой, обязательны для заполнения", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cancel = true; return; } if (_operationInfo.OpenedOperationProtocolForm != null && !_operationInfo.OpenedOperationProtocolForm.IsDisposed) { MessageBox.ShowDialog("Вы не можете закрыть эту форму, пока не закроете форму \"Протокол операции\"", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); _operationInfo.OpenedOperationProtocolForm.Focus(); e.Cancel = true; return; } try { _operationWorker.Update(_operationInfo); _hospitalizationViewForm.ShowOperations(); } catch (Exception ex) { MessageBox.ShowDialog(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Cancel = true; return; } } else { try { if (_action == AddUpdate.Add) { _operationWorker.Remove(_operationInfo.Id); } else { _operationInfo = new COperation(_saveOperationInfo); _operationWorker.Update(_operationInfo); } _hospitalizationViewForm.ShowOperations(); } catch (Exception ex) { MessageBox.ShowDialog(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } _configurationEngine.OperationViewFormLocation = Location; }