private void HandleError(object Sender, RenderingErrorEventArgs E) { IRenderer Renderer = (IRenderer)Sender; if (E.IsFatal) { Renderer.Abort(); } if (!_RenderingConfig.IsPreview) { lock (_SkipErrors) { // *** Alert user if (_SkipErrors.Contains(E.ErrorCode)) { return; } String ErrorMessage = String.Format("An error occurred while rendering: \r\n{0}", E.UserErrorMessage); if (E.ShowInnerException) { ErrorMessage += E.ErrorException.Message + "\r\n"; } if (!E.IsFatal) { ErrorMessage += "Ignore this error if it occurs again?"; } DialogResult R = MessageBox.Show(ErrorMessage, E.IsFatal ? "Rendering Failed" : "Rendering Error", E.IsFatal ? MessageBoxButtons.OK : MessageBoxButtons.YesNoCancel, E.IsFatal ? MessageBoxIcon.Stop : MessageBoxIcon.Error); if (R == DialogResult.Yes) { _SkipErrors.Add(E.ErrorCode); } } } }