private void OnChangeCalcOrderItem(Object sender, ChangeCalcOrderItemEventArgs e) { try { if (e.IsChanged == true) { SetPropertiesModified(true); } if (tabControl.TabPages.Count > 0) { foreach (DevExpress.XtraTab.XtraTabPage tabPage in tabControl.TabPages) { if (tabPage.Name == e.CalcOrder.Num) { tabPage.Image = (e.IsChanged == true) ? ERPMercuryDatabaseDirectory.Properties.Resources.warning : ERPMercuryDatabaseDirectory.Properties.Resources.check2; tabPage.Refresh(); break; } } } } catch (System.Exception f) { DevExpress.XtraEditors.XtraMessageBox.Show( "OnChangePlanVariable.\n\nТекст ошибки: " + f.Message, "Внимание", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } finally // очищаем занимаемые ресурсы { } return; }
public void SimulateChangeCalcOrderItem(CCalcOrder objCalcOrder, System.Boolean bIsChanged) { // Создаем объект, хранящий информацию, которую нужно передать // объектам, получающим уведомление о событии ChangeCalcOrderItemEventArgs e = new ChangeCalcOrderItemEventArgs(objCalcOrder, bIsChanged); // Вызываем виртуальный метод, уведомляющий наш объект о возникновении события // Если нет типа, переопределяющего этот метод, наш объект уведомит все объекты, // подписавшиеся на уведомление о событии OnChangeCalcOrderItem(e); }
/// <summary> /// Инициирует событие и уведомляет о нем зарегистрированные объекты /// </summary> /// <param name="e"></param> protected virtual void OnChangeCalcOrderItem(ChangeCalcOrderItemEventArgs e) { // Сохраняем поле делегата во временном поле для обеспечение безопасности потока EventHandler <ChangeCalcOrderItemEventArgs> temp = m_ChangeCalcOrderItem; // Если есть зарегистрированные объектв, уведомляем их if (temp != null) { temp(this, e); } }