private void ConditionControlDeleted(object sender, EventArgs e) { CargoRecordControl control = (CargoRecordControl)sender; FlightCargoRecord cond = control.FlightCargoRecord; if (cond.ItemId > 0 && MessageBox.Show("Do you really want to delete flight cargo record?", "Deleting confirmation", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { //если информация о состоянии сохранена в БД //и получен положительный ответ на ее удаление try { GlobalObjects.CasEnvironment.NewKeeper.Delete(cond); } catch (Exception ex) { Program.Provider.Logger.Log("Error while removing data", ex); } flowLayoutPanelMain.Controls.Remove(control); control.Deleted -= ConditionControlDeleted; control.WeightChanged -= ControlWeightChanged; control.Dispose(); } else if (cond.ItemId <= 0) { flowLayoutPanelMain.Controls.Remove(control); control.Deleted -= ConditionControlDeleted; control.WeightChanged -= ControlWeightChanged; control.Dispose(); } }
/* * Реализация */ #region private void BuildControls() /// <summary> /// Строит нужные контролы /// </summary> private void BuildControls() { // Освобождаем старые контролы flowLayoutPanelMain.Controls.Clear(); if (Flight != null && Flight.FlightCargoRecords != null) { for (int i = 0; i < Flight.FlightCargoRecords.Count; i++) { // Добавляем контрол для ввода данных по маслу CargoRecordControl c = new CargoRecordControl(Flight.FlightCargoRecords[i]); c.Deleted += ConditionControlDeleted; c.WeightChanged += ControlWeightChanged; if (i > 0) { c.ShowHeaders = false; } flowLayoutPanelMain.Controls.Add(c); } } flowLayoutPanelMain.Controls.Add(panelAdd); GetTotal(); }
private void LinkLabelAddNewLinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { CargoRecordControl performance = new CargoRecordControl(new FlightCargoRecord { FlightId = Flight.ItemId }); performance.Deleted += ConditionControlDeleted; performance.WeightChanged += ControlWeightChanged; if (flowLayoutPanelMain.Controls.Count > 1) { performance.ShowHeaders = false; } flowLayoutPanelMain.Controls.Remove(panelAdd); flowLayoutPanelMain.Controls.Add(performance); flowLayoutPanelMain.Controls.Add(panelAdd); performance.Focus(); }