private void OnExportCompleteUI(object sender, AsyncCompletedEventArgs args) { AsyncMainStreamRenderingOperation asyncMainStreamRenderingOperation = (AsyncMainStreamRenderingOperation)sender; if (args.Error != null) { if (!args.Cancelled) { m_viewerControl.DisplayErrorMsgBox(args.Error, LocalizationHelper.Current.ExportErrorTitle); } } else if (asyncMainStreamRenderingOperation.ReportBytes != null) { try { using (Stream stream = PromptFileName(asyncMainStreamRenderingOperation.FileNameExtension)) { if (stream != null) { stream.Write(asyncMainStreamRenderingOperation.ReportBytes, 0, asyncMainStreamRenderingOperation.ReportBytes.Length); base.DialogResult = DialogResult.OK; } } } catch (Exception ex) { m_viewerControl.DisplayErrorMsgBox(ex, LocalizationHelper.Current.ExportErrorTitle); } } Close(); }
protected override void OnLoad(EventArgs e) { cancelButton.Font = Font; try { m_viewerControl.CancelRendering(-1); AsyncReportOperation asyncReportOperation = new AsyncMainStreamRenderingOperation(m_viewerControl.Report, PageCountMode.Estimate, m_format.Name, m_deviceInfo, allowInternalRenderers: false, null); asyncReportOperation.Completed += OnExportComplete; m_viewerControl.BackgroundThread.BeginBackgroundOperation(asyncReportOperation); } catch (Exception ex) { ProcessOnLoadException(ex); } Point point = m_viewerControl.PointToScreen(Point.Empty); base.Left = point.X + Math.Max(0, (m_viewerControl.Width - base.Width) / 2); base.Top = point.Y + Math.Max(0, (m_viewerControl.Height - base.Height) / 2); }