Skip to content
## GridControl MaskEdit
           this.repositoryItemTextEdit1.AutoHeight = false;
           this.repositoryItemTextEdit1.Mask.EditMask = "[0-9]{4}[ ].{5}";
           this.repositoryItemTextEdit1.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx;

## DataTable

DataTable empTbl = new DataTable();
List<string> list = empTbl.AsEnumerable().Select(x => x.Field<string>("EMP_ID")).Distinct().ToList();


##
var existValueCells = (from cell in this.dataGridViewInput.Rows[this.dataGridViewInput.SelectedCells[0].RowIndex].Cells.OfType<DataGridViewCell>()
                                               where !string.IsNullOrEmpty(cell.OwningColumn.DataPropertyName)
                                                     && cell.OwningColumn.DataPropertyName.Split('_')[0].Equals("VALUE")
                                                     && !cell.OwningColumn.DataPropertyName.Equals("VALUE_TYPE")
                                                     && int.Parse(cell.OwningColumn.DataPropertyName.Split('_')[1]) < int.Parse(this.dataGridViewInput.SelectedCells[0].OwningColumn.DataPropertyName.Split('_')[1])
                                                     && (cell.Value == null || string.IsNullOrEmpty(cell.Value.ToString()))
                                               select cell).ToList();

## 192.168.13.234 user

## XtraDiagram Create Custom Shape
// https://www.devexpress.com/Support/Center/Question/Details/T572792/how-to-add-pre-excisting-shapes-in-stencil

var stencil = DiagramStencil.Create("CustomShapes", "Custom Shapes", stream, shapeName => shapeName);
    stencil.RegisterShape(BasicShapes.Ellipse);
    DiagramToolboxRegistrator.RegisterStencil(stencil);

#GridControl
##Sorting devexpress winforms gridview sorting arrow invisible
https://documentation.devexpress.com/WindowsForms/692/Controls-and-Libraries/Data-Grid/Sorting/Sorting-in-Code
https://www.devexpress.com/Support/Center/Question/Details/Q324369/how-to-hide-grid-column-sort-order-glyph

        //
        void gridView1_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e)
        {
            SortGhyphHideHelper.RemoveSortGlyphIfNeccessary(e);
        }

        //
    public class SortGhyphHideHelper
    {
        public static void  RemoveSortGlyphIfNeccessary(ColumnHeaderCustomDrawEventArgs args)
        {
            DrawElementInfo elementInfo = FindSortGlyphElement(args.Info);
            if (elementInfo == null)
                return;
            args.Info.InnerElements.Remove(elementInfo);
            args.Painter.CalcObjectBounds(args.Info);
        }
        private static DrawElementInfo  FindSortGlyphElement(DevExpress.XtraGrid.Drawing.GridColumnInfoArgs info)
        {
            foreach (DrawElementInfo innerElement in info.InnerElements)
                if (innerElement.ElementInfo is SortedShapeObjectInfoArgs)
                    return innerElement;
            return null;
        }
    }




## GridControl Sorting

https://www.devexpress.com/Support/Center/Question/Details/A36/how-to-sort-the-grid-by-a-particular-column




## DPI
C:\Users\Public\Documents\DevExpress Demos 17.1\Components\WinForms\CS\LayoutMainDemo
C:\Users\Public\Documents\DevExpress Demos 17.1\Components\WinForms\CS\LayoutMainDemo\Modules\Multilanguage\MultilanguageForm.cs
#SreadsheetControl
## 한줄띄어쓰기
https://www.devexpress.com/Support/Center/Question/Details/T538124/spreadsheet-text-vertical
worksheet.Cells["A1"].Alignment.WrapText = true;
worksheet.Cells["A1"].Value = "2\r\n0\r\n1\r\n7";

## TextEdit devexpress winforms textedit select all on focus
https://www.devexpress.com/Support/Center/Question/Details/T723050/textedit-select-all-on-focus

        private void txtEdit_Enter(object sender, EventArgs e)
        {
            var edit = ((DevExpress.XtraEditors.TextEdit)sender);
            BeginInvoke(new MethodInvoker(() =>
            {
                edit.SelectionStart = 0;
                edit.SelectionLength = edit.Text.Length;
            }));
        }


## GridControl LayoutView

           //Properties.Settings.Default.GridHeight = this.layoutViewField_layoutViewColumn5.Height;
           //Properties.Settings.Default.GridHeight = this.layoutView1.CardMinSize.Height;
           //this.layoutViewField_layoutViewColumn5.ControlMinSize;
           //Properties.Settings.Default.Save();
           for (int x = 0; x < this.layoutViewCard1.Items.Count; x++)
           {
               if(this.layoutViewCard1.Items[x].CustomizationFormText == "오더리스트")
               {
                   Properties.Settings.Default.GridHeight = layoutViewCard1.Items[x].Bounds.Size.Height;
                   Properties.Settings.Default.Save();
               }
           }


## GridControl RepositoryAnyControl 애니컨트롤일 경우
devexpress AllowBitmapCache

https://www.devexpress.com/Support/Center/Question/Details/T559987/synchronizing-charts-in-cells


## FlyoutPanel

flyoutPanel1.ButtonClick += FlyoutPanel1_ButtonClick;
flyoutPanel1.OptionsButtonPanel.ButtonPanelContentAlignment = System.Drawing.ContentAlignment.MiddleCenter;
flyoutPanel1.OptionsButtonPanel.ButtonPanelHeight = 60;
flyoutPanel1.OptionsButtonPanel.ButtonPanelLocation = DevExpress.Utils.FlyoutPanelButtonPanelLocation.Bottom;
buttonImageOptions1.ImageUri.Uri = "Replace;Office2013";
buttonImageOptions2.ImageUri.Uri = "Apply;Office2013";
buttonImageOptions3.ImageUri.Uri = "Cancel;Office2013";
flyoutPanel1.OptionsButtonPanel.Buttons.AddRange(new DevExpress.XtraEditors.ButtonPanel.IBaseButton[] {
//new DevExpress.Utils.PeekFormButton("작업이동", true, buttonImageOptions1, true, null),
new DevExpress.Utils.PeekFormButton("적용", true, buttonImageOptions2, true, null),
new DevExpress.Utils.PeekFormButton("취소", true, buttonImageOptions3, true, null)});


## ZoomTrackBarControl

var Control = sender as ZoomTrackBarControl;
GridView1.Appearance.Row.FontSizeDelta = Control.Value;
GridView1.Appearance.HeaderPanel.FontSizeDelta = Control.Value;


private void ZoomTrackBarControl1_ValueChanged(object sender, EventArgs e)
{
    //var control = sender as ZoomTrackBarControl;
    //layoutView1.Appearance.Card.Font = new System.Drawing.Font("맑은 고딕", control.Value, System.Drawing.FontStyle.Bold);
    //layoutView1.Appearance.HeaderPanel.FontSizeDelta = control.Value;
    float fontSize = defaultFontSize;
    LayoutView layoutView = layoutView1;
    fontSize += Convert.ToInt32(zoomTrackBarControl1.EditValue) * 3;
    Font fnt = new Font("맑은 고딕", fontSize);
    layoutView.Columns["GAUGE_CONTROL"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["GAUGE_CONTROL"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["CHART_CONTROL"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["CHART_CONTROL"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["GRID_CONTROL"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["GRID_CONTROL"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["ORDER_COUNT"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["ORDER_COUNT"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["STATE"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["STATE"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["MONTH_QTY"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["MONTH_QTY"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["LOAD_RATE"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["LOAD_RATE"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["EQP_ID"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["EQP_ID"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["EQP_DESC"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["EQP_DESC"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["CHART_CONTROL"].ColumnEdit.Appearance.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["CHART_CONTROL"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["CHART_CONTROL"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["GRID_CONTROL"].ColumnEdit.Appearance.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["GRID_CONTROL"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["GRID_CONTROL"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["GAUGE_CONTROL"].ColumnEdit.Appearance.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["GAUGE_CONTROL"].AppearanceHeader.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
    layoutView.Columns["GAUGE_CONTROL"].AppearanceCell.Font = new System.Drawing.Font("맑은 고딕", fontSize, System.Drawing.FontStyle.Bold);
}


## c# 해상도에 따른 변경
http://www.hoons.net/Board/qacshap/Content/77357

## GridControl RepositoryItemPictureEdit

resultList[x].ITEM_IMG = (Image)SmartiPOP.Dashboard.Properties.Resources.ResourceManager.GetObject("_3");
using System.Resources;

RepositoryItemPictureEdit ritem4 = new RepositoryItemPictureEdit();
ritem4.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Stretch;
this.layoutViewField_layoutViewColumn1.Size = new System.Drawing.Size(283, 61);
//ResourceManager rm = SmartiPOP.Dashboard.Properties.Resources.ResourceManager;
//Bitmap myImage = (Bitmap)rm.GetObject("_3");
//ritem4.Appearance.Image = myImage;

layoutView.Columns["ITEM_IMG"].ColumnEdit = ritem4;
layoutView.Columns["ITEM_IMG"].LayoutViewField.TextVisible = false;
layoutView.Columns["ITEM_IMG"].OptionsColumn.AllowSort = DevExpress.Utils.DefaultBoolean.False;
layoutView.Columns["ITEM_IMG"].OptionsFilter.AllowFilter = false;
layoutView.Columns["ITEM_IMG"].OptionsColumn.ReadOnly = true;
layoutView.Columns["ITEM_IMG"].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Near;
layoutView.Columns["ITEM_IMG"].AppearanceHeader.Options.UseFont = true;
layoutView.Columns["ITEM_IMG"].AppearanceCell.Options.UseFont = true;





## GridControl AnyControl
https://www.devexpress.com/Support/Center/Question/Details/T336707/layoutview-how-to-display-relational-data-correctly
https://www.devexpress.com/Support/Center/Question/Details/T157840/embedding-a-user-control-in-a-winforms-xtragrid
https://www.devexpress.com/Support/Center/Question/Details/T190833/charts-or-grids-in-treelist-control

## TextEdit
this.tbUserId.Properties.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;

## GridView SortInfo

//gridView.SortInfo.ClearAndAddRange(new[] { new GridMergedColumnSortInfo(new[] { gridView.Columns[0], gridView.Columns[1] }, new[] { ColumnSortOrder.Ascending, ColumnSortOrder.Ascending }) }, 1);
//GridSummaryItem summaryItemMaxOrderSum = new GridSummaryItem(DevExpress.Data.SummaryItemType.Count, "EQP_ID", null, "( 오더수 = {0})");
//GridSummaryItem summaryItemMaxOrderSum2 = gridView.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "EQP_ID", null, "( 오더수 = {0:c2})");
//GridSummaryItem summaryItemMaxOrderSum = gridView.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "EQP_ID", null, "( 오더수 = {0:c2})");


## TextEdit 어퍼로 만들기
this.tbUserId.Properties.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;

## DateTimeEdit 숫자 수정 가능하도록
this.calFromDate.Properties.CalendarTimeEditing = DevExpress.Utils.DefaultBoolean.True;

입력되는 포맷형태
this.calFromDate.Properties.Mask.EditMask = "yyyy-MM-dd HH:mm:ss";
this.calFromDate.Properties.Mask.UseMaskAsDisplayFormat = true;

this.calFromDate.Properties.Mask.EditMask = "yyyy-MM-dd";
this.calFromDate.Properties.Mask.UseMaskAsDisplayFormat = true;
드랍버튼 클릭 시 년도가 먼저 보이게 됨
this.calFromDate.Properties.VistaCalendarInitialViewStyle = DevExpress.XtraEditors.VistaCalendarInitialViewStyle.YearView;


## GridControl RepositoryItemTextEdit -RegEx

            //repositoryItemTextEditNumber.Mask.EditMask = @"(\d{0,3}\R,\d{0,3})+(\R.\d{0,2})?"; //  1,234
            repositoryItemTextEditNumber.Mask.EditMask = @"[0-9]{0,3}\,[0-9]{0,3}(\.[0-9]{1,2})?"; //  1,234


            repositoryItemTextEditNumber.Mask.EditMask = @"\d+(\R.\d{0,2})?"; //  1,234
            repositoryItemTextEditNumber.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx;


## XtraReport XRSubReport 와  Pagebreak
https://www.devexpress.com/Support/Center/Question/Details/T204609/multiple-page-reports

## DateEdit devexpress dateedit not null text 널값 허용 안함  https://www.devexpress.com/Support/Center/Question/Details/Q299036/dateedit-null-value
// DateEdit의 Null값 허용 안함
this.fromdate.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
this.todate.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;


## XtraReport
XtraReport 다시 사용  Save 하고 다시 사용  https://www.devexpress.com/Support/Center/Question/Details/T524253/report-shows-only-one-row


## SpreadSheet 폰트
https://documentation.devexpress.com/OfficeFileAPI/12370/Spreadsheet-Document-API/Examples/Formatting-Cells/How-to-Configure-Cell-Font-Settings
https://documentation.devexpress.com/OfficeFileAPI/DevExpress.Spreadsheet.SpreadsheetFont.FontStyle.property

## SpinEdit EditValueChangedFiringMode
https://documentation.devexpress.com/WindowsForms/DevExpress.XtraEditors.Repository.RepositoryItem.EditValueChangedFiringMode.property


## GaugeControl 게이지컨트롤 스타일매니저
https://documentation.devexpress.com/WindowsForms/18232/Controls-and-Libraries/Gauges/Design-Time-Features/Gauge-Styles-and-Style-Manager

## GaugeControl Ignis 사용법
https://www.cnblogs.com/chucklu/p/6093971.html

## GaugeControl Change Value  in Runtime
https://documentation.devexpress.com/WindowsForms/115306/Controls-and-Libraries/Gauges/Examples/How-to-Move-Value-Indicators-at-Runtime

## Rectangle
 경계 색 그리기  https://docs.microsoft.com/ko-kr/dotnet/framework/winforms/advanced/how-to-set-pen-width-and-alignment


## LayoutView
https://www.devexpress.com/Support/Center/Question/Details/Q352918/card-display-in-layoutview
### 레이아웃을 Vertical 모드, 카드가 적을 경우 정렬 방식
            layoutView.OptionsMultiRecordMode.MultiRowScrollBarOrientation = ScrollBarOrientation.Vertical;
            layoutView.OptionsView.ContentAlignment = ContentAlignment.TopLeft;
### 레이아웃 템플릿 저장하고 불러오기
https://www.devexpress.com/Support/Center/Question/Details/Q490895/how-to-restore-the-layoutview-s-template-card-settings-from-layout
string path = "test.xml";
layoutView1.RestoreLayoutFromXml(path);
layoutView1.SaveLayoutToXml(path);


### 캡션색깔 변경하기 (Header)  https://www.devexpress.com/Support/Center/Question/Details/T352991/how-to-indicate-what-a-card-is-focused-n-layoutview-if-the-card-caption-is-hidden
            view.OptionsView.AllowBorderColorBlending = true;
### LayoutView의 Weight를 변경하기 위해서는 자체 Width를 변경해야 함 (LayoutView에 AnyControl형태로 넣을 경우 Height가 정상 반영이 안되서)
    또는 IXtraResizableControl 인터페이스 상속

## GridControl AnyControl devexpress IAnyControlEdit
https://www.devexpress.com/Support/Center/Question/Details/T451244/update-datasource-from-ianycontroledit-control

## GridControl group header Merging
https://documentation.devexpress.com/WindowsForms/3500/Controls-and-Libraries/Data-Grid/Grouping
https://documentation.devexpress.com/WindowsForms/DevExpress.XtraGrid.Views.Grid.GridOptionsCustomization.AllowMergedGrouping.property

## IAnyControl 날짜별로 그리드 콘트롤안에 넣기
http://www.devexpress.com/example=T186700


## GridControl LayoutVIew
### Chage BackColor using format conditions https://www.devexpress.com/Support/Center/Question/Details/Q449138/layout-view-change-back-color-of-a-cell
### devexpress layoutview LayoutViewCard  https://www.devexpress.com/Support/Center/Question/Details/T319514/hide-layout-view-column-in-the-cards
1번 LayoutViewColumn layoutViewColumn = new LayoutViewColumn();
    layoutViewColumn.LayoutViewField.TextVisible = false;
2번    layoutView.Columns["IMAGE"].LayoutViewField.TextVisible = false;
## 셀 복사
GridControl grid = sender as GridControl;
if (grid != null)
{
    GridView view = grid.FocusedView as GridView;
    if (view != null)
    {
        Clipboard.SetText(view.GetFocusedDisplayText());
        e.Handled = true;
        //view.CopyToClipboard();
    }
}


GridView view = sender as GridView;
if (e.Control && e.KeyCode == Keys.C)
{
    if (view.GetRowCellValue(view.FocusedRowHandle, view.FocusedColumn) != null && view.GetRowCellValue(view.FocusedRowHandle, view.FocusedColumn).ToString() != String.Empty)
        Clipboard.SetText(view.GetRowCellValue(view.FocusedRowHandle, view.FocusedColumn).ToString());

    e.Handled = true;
}



## WidgetView
### devexpress widgetview change control https://www.devexpress.com/Support/Center/Question/Details/T121157/change-widgetview-document-s-control
### devexpress document add control https://www.devexpress.com/Support/Center/Question/Details/T262503/widgetview-document-how-to-add-a-control

## GaugeControl ignis devexpress winforms gauge control ignis


## GridControl TileView Add Image https://stackoverflow.com/questions/39242119/devexpress-xtragrid-tileview

## SplitContainerControl devexpress splitcontainercontrol arrow
https://documentation.devexpress.com/WindowsForms/DevExpress.XtraEditors.SplitContainerControl.CollapsePanel.property
this.splitContainerControl1.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel1;



## FlyoutPanel location change
https://www.devexpress.com/Support/Center/Question/Details/T346612/flyout-panel-location-and-position
this.flyoutPanel1.Options.AnchorType = DevExpress.Utils.Win.PopupToolWindowAnchor.Right;
this.flyoutPanel2.OptionsBeakPanel.BeakLocation = DevExpress.Utils.BeakPanelBeakLocation.Left;

## PictureEdit

Set Fit Image in PictureEdit
https://www.devexpress.com/Support/Center/Question/Details/Q413142/set-fit-image-in-pictureedit

this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Stretch;

## CardView
CardView.OptionsView.ShowHorzScrollBar property


## PDFViewer


## 이쁜블로그이미지
https://community.devexpress.com/Blogs/

## ftp 업로드
https://null486.tistory.com/1

## pdf c# webbrowser redirect page download
https://www.codeproject.com/Questions/120365/Downloading-files-without-direct-address-through-C

this.pdfViewer1.DetachStreamAfterLoadComplete = true;


string pdfUrl = "";
//string requestUri = ""; ;
//string responseData;
//using (var client = new WebClient())
//{
//    responseData = client.DownloadString(requestUri);
//    MessageBox.Show(responseData);
//}
using (WebClient client = new WebClient())
{
    string html = client.DownloadString(pdfUrl);
    client.UseDefaultCredentials = true;
    //client.Credentials = new NetworkCredential("test", "test");
    //client.DownloadDataTaskAsync(pdfUrl);
    client.DownloadFileAsync(new Uri(pdfUrl), "Test.pdf");
    //client.DownloadDataCompleted += Client_DownloadDataCompleted;
    client.DownloadFileCompleted += Client_DownloadFileCompleted;
    //using (MemoryStream ms = new MemoryStream(fileBytes))
    //    pdfViewer1.LoadDocument(ms);
}
//pdfdocumentprocessor documentprocessor = new pdfdocumentprocessor();
//using (webclient client = new webclient())
//{
//    //client.usedefaultcredentials = true;
//    byte[] filebytes = client.downloaddata(pdfurl);
//    using (memorystream ms = new memorystream(filebytes))
//    {
//        pdfviewer1.loaddocument(ms);
//        documentprocessor.loaddocument(ms);
//    }
//}
////Process.Start(pdfUrl);
PdfDocumentProcessor documentProcessor = new PdfDocumentProcessor();
using (FileStream stream = new FileStream(pdfUrl, FileMode.Open, FileAccess.Read))
{
    byte[] pdfFileBytes = new byte[stream.Length];
    stream.Read(pdfFileBytes, 0, (int)stream.Length);
    documentProcessor.LoadDocument(stream);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}