private void ConditionControlDeleted(object sender, EventArgs e) { ProcedureDocRefControl control = (ProcedureDocRefControl)sender; ProcedureDocumentReference cond = control.ProcedureDocumentReference; if (cond.ItemId > 0 && MessageBox.Show("Do you really want to delete Category 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.Dispose(); } else if (cond.ItemId <= 0) { flowLayoutPanelMain.Controls.Remove(control); control.Deleted -= ConditionControlDeleted; control.Dispose(); } }
private void LinkLabelAddNewLinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { ProcedureDocRefControl performance = new ProcedureDocRefControl(new ProcedureDocumentReference { Procedure = Procedure }); performance.Deleted += ConditionControlDeleted; if (flowLayoutPanelMain.Controls.Count > 1) { performance.ShowHeaders = false; } flowLayoutPanelMain.Controls.Remove(panelAdd); flowLayoutPanelMain.Controls.Add(performance); flowLayoutPanelMain.Controls.Add(panelAdd); performance.Focus(); }
/* * Реализация */ #region private void BuildControls() /// <summary> /// Строит нужные контролы /// </summary> private void BuildControls() { // Освобождаем старые контролы flowLayoutPanelMain.Controls.Clear(); if (Procedure != null && Procedure.DocumentReferences != null) { for (int i = 0; i < Procedure.DocumentReferences.Count; i++) { // Добавляем контрол для ввода данных по маслу ProcedureDocRefControl c = new ProcedureDocRefControl(Procedure.DocumentReferences[i]); c.Deleted += ConditionControlDeleted; if (i > 0) { c.ShowHeaders = false; } flowLayoutPanelMain.Controls.Add(c); } } flowLayoutPanelMain.Controls.Add(panelAdd); }