/// <summary> /// Метод вызывающийся перед закрытием вкладки /// </summary> /// <param name="e"></param> protected override void OnClosing(AvMultitabControlCancelEventArgs e) { IDisplayer associatedDisplayer = e.TabPage as IDisplayer; if (associatedDisplayer == null) { return; } if (!associatedDisplayer.PerformCloseChecking) { return; } DisplayerCancelEventArgs eventArguments = new DisplayerCancelEventArgs(associatedDisplayer, DisplayerAction.Removing); if (DisplayerDeleting != null) { DisplayerDeleting(this, eventArguments); } //Оповещение о начале удаления вкладки associatedDisplayer.OnDisplayerRemoving(eventArguments); //Если вкладка запросила отменить удаление, операция прекращается if (eventArguments.Cancel) { e.Cancel = true; return; } //Оповещение о окончании удаления вкладки associatedDisplayer.OnDisplayerRemoved(eventArguments); //Если вкладка запросила отменить закрытие, операция прекращается if (eventArguments.Cancel) { e.Cancel = true; return; } e.Cancel = eventArguments.Cancel; base.OnClosing(e); if (!eventArguments.Cancel) { if (DisplayerDeleted != null) { DisplayerDeleted(this, new DisplayerEventArgs(associatedDisplayer)); } } }