Browse Source

fix bugs after refactor the Samplespace module.

gsp 8 months ago
parent
commit
acafb1b906

+ 2 - 3
OTSIncAMeasureApp/0-OTSModel/OTSDataType/COTSField.cs

@@ -24,7 +24,7 @@ namespace OTSDataType
 
         int measureSequence;
 
-        private bool m_enable;
+        private bool m_enable=true;
         // position (from field center manager) 
         protected System.Drawing.PointF m_otsPos;
 
@@ -213,8 +213,7 @@ namespace OTSDataType
         public void GetOriginalParticles(CSampleParam pMsrParam, double pixelsize)
         {
 
-            // get image process parameter
-            //CSampleParam pMsrParam = m_Sample.GetMsrParams();
+          
             COTSImageProcParam pImgProcessParam = pMsrParam.GetImageProcessParam();
            
           

+ 2 - 3
OTSIncAMeasureApp/1-OTSMeasure/Measure/ParamData/COTSMsrPrjResultData.cs

@@ -48,8 +48,7 @@ namespace OTSModelSharp
 
 
         private otsdataconst.OTS_SysType_ID systemTypeId;
-        private List<Point> listCenterPoint;
-        private Size rectSize;
+       
 
         public OTS_SysType_ID SystemTypeId { get => systemTypeId; set => systemTypeId = value; }
 
@@ -179,7 +178,7 @@ namespace OTSModelSharp
                 smpl.SetMsrResults(poMsrResults);
 
                 
-                smpl.InitFieldPosData(out listCenterPoint, out rectSize);
+               
 
             }
 

+ 1 - 1
OTSIncAMeasureApp/2-OTSMeasureParamManage/COTSMeasureParam.cs

@@ -370,7 +370,7 @@ namespace OTSMeasureApp
             pSample.SetSwitch(m_pParam.GetMeasurementSwitch());
             poMsrParams.SetSysSTDSwitch(m_pParam.GetSysSTD());
             pSample.SetMsrDomain(pMsrArea);
-            //pSample.SetMembraneType(a_nVal);
+           
             pSample.SetMsrParams(poMsrParams);
             CSEMDataMsr semData = new CSEMDataMsr();
             var m_pSEMStageData = GetDefaultParam().GetStageDataParam();

+ 8 - 139
OTSIncAMeasureApp/3-OTSDisplaySourceGridData/OTSDisplaySampleGrid.cs

@@ -1,11 +1,9 @@
-using OTSDataType;
-using OTSMeasureApp._3_OTSDisplaySourceGridData;
-using OTSMeasureApp._7_OTSProgMgrInfo;
+
 using OTSModelSharp.ResourceManage;
 using SourceGrid;
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
+
 using System.Drawing;
 using System.Linq;
 using System.Text.RegularExpressions;
@@ -38,8 +36,7 @@ namespace OTSMeasureApp
 
         //当选择了Grid的某个row ,修改Row的值,引发的事件
         ChangeGridCellValEvent m_ChangeCellValEvent = null;
-        //选择COMBOBOX值引发的事件
-        SelectComboboxItem m_SeletComboboxValEvent = null;
+  
         //EditFileDialog
         EditorFileDialog m_EditFileDlg = new EditorFileDialog();
 
@@ -53,22 +50,18 @@ namespace OTSMeasureApp
         public int m_ClickRow = 0;
         public int m_ClickColumn = 0;
 
-        //当改变ProperyWindow窗口大小时,窗口响应Resize(object sender, EventArgs e),返回改变后的尺寸,利用改变后的窗口尺寸重回Grid的行宽和列宽
         public int m_PropWindow_X = 0;
         public int m_PropWindow_Y = 0;
 
      //   int Cur_Grid_Rows = 0;           //临时用于计算用的grid行号
-        public static int Const_Grid_Row = 50;    //总行数
+        public static int Const_Grid_Row = 60;    //总行数
         public static int Const_Grid_Column = 3;   //总列数
 
 
-        //后台工作线程
-        BackgroundWorker m_bgWorker = null;
+     
         //后台工作线程启动标志,保证线程按顺序启动。
         public bool m_ReqChangeValFlag = true;
 
-        //工作样品对象
-        //OTSSampleVisualPropertyInfo m_WSampleInfo = new OTSSampleVisualPropertyInfo();
 
         NLog.Logger log ;
 
@@ -95,7 +88,7 @@ namespace OTSMeasureApp
         void IntiChangeValEvent()
         {
             m_ChangeCellValEvent = new ChangeGridCellValEvent(this);
-            m_SeletComboboxValEvent = new SelectComboboxItem(this);
+         
             m_SelectCheckBoxEvent = new SelcetCheckBoxEvent(this);
 
             //CELL的第一例的 "-" 的事件,响应点击事件
@@ -103,23 +96,12 @@ namespace OTSMeasureApp
             m_linkClickEvent3.Executed += new EventHandler(CellLink_Click_Status);
         }
 
-        //初始化工作线程
-        private void InitWorkThread()
-        {
-            using (m_bgWorker = new BackgroundWorker())
-            {
-
-                m_bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
-                m_bgWorker.DoWork += new DoWorkEventHandler(bw_DoWork);
-          
-            }
-        }
 
        
         //初始化Grid的标题
         public void InitGridTitlet()
         {
-     //       InitGrid();
+    
             int firstColumnWidth = 15;    //第一列的宽度
             int SecondColumnWidth = 180;
             //设备各单元格宽度---------------------------------------------
@@ -652,7 +634,7 @@ namespace OTSMeasureApp
 
         }
 
-        //响应 表头"-"按钮,点击后的事件
+      
         //折叠显示grid信息使用
         private void CellLink_Click_Status(object sender, EventArgs e)
         {
@@ -697,119 +679,6 @@ namespace OTSMeasureApp
 
 
 
-        /// <summary>
-        /// 保存修改样品值
-        /// </summary>
-        struct sSampleid_Val
-        {
-            public OTS_SAMPLE_PROP_GRID_ITEMS SampleID;
-            public object ObjVal;
-            public bool bCheckBoxFlag; //bCheckBoxFlag: 当TREEVIEW的工作样品的CHECKBOS状态发生变化,bCheckBoxFlag=true;需要更新GRIDE上的SWITCH的值
-        }
-
-
-        /// <summary>
-        /// MeasureAPP回复Gird修改值成功/失败
-        /// bCheckBoxFlag: 当TREEVIEW的工作样品的CHECKBOS状态发生变化,bCheckBoxFlag=true;需要更新GRIDE上的SWITCH的值
-        /// </summary>
-        /// <param name="SampleID"></param>
-        /// <param name="ObjVal"></param>
-        /// <param name="bCheckBoxFlag"></param>
-        public void UpdataNewGridVal(OTS_SAMPLE_PROP_GRID_ITEMS SampleID, object ObjVal, bool bCheckBoxFlag=false)
-        {
-            sSampleid_Val sval = new sSampleid_Val();
-            sval.SampleID = SampleID;
-            sval.ObjVal = ObjVal;
-            sval.bCheckBoxFlag = bCheckBoxFlag;
-            if (m_bgWorker != null)
-            {
-                if (!m_bgWorker.IsBusy)
-                {
-                    m_ReqChangeValFlag = false;
-                
-                    m_bgWorker.RunWorkerAsync(sval);
-                }
-            }
- 
-
-        }
-
-      
-        void bw_DoWork(object sender, DoWorkEventArgs e)
-        {
-            // 这里是后台线程, 是在另一个线程上完成的
-            // 这里是真正做事的工作线程
-            // 可以在这里做一些费时的,复杂的操作
-
-            
-            sSampleid_Val sVal = (sSampleid_Val)e.Argument;
-
-
-            string str = sVal.SampleID.ToString();
-            string sLine = m_ClickRow.ToString();
-            str += " != Switch" + "  ClickLine = " + sLine;
-
-            if (sVal.SampleID != OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH)
-               {
-                    if ((OTS_SAMPLE_PROP_GRID_ITEMS)m_PropWindow.PropGrid.Rows[m_ClickRow].Tag == sVal.SampleID)
-                    {
-                            m_PropWindow.PropGrid[m_ClickRow, m_ClickColumn].Value = sVal.ObjVal;
-                    log.Trace("    Set Value   "+str);
-
-                   
-                     }
-              }
-               else
-               {
-                    
-                    if (sVal.bCheckBoxFlag)
-                    {
-                        for(int i=0; i<m_Grid_TotalRow; i++)
-                        {
-                            if(null == m_PropWindow.PropGrid[i, 2].Tag)
-                            {
-                                 continue;
-                            }
-                            if (((int)m_PropWindow.PropGrid[i, 2].Tag == i) && ((OTS_SAMPLE_PROP_GRID_ITEMS)m_PropWindow.PropGrid.Rows[i].Tag == OTS_SAMPLE_PROP_GRID_ITEMS.SWITCH))
-                            {
-                                m_PropWindow.PropGrid[i, 2].FindController<SourceGrid.Cells.Controllers.CheckBox>().CheckedChanged -= m_SelectCheckBoxEvent.SetCheckBoxStatus(i);
-                               bool bFlag = m_PropWindow.PropGrid.ContainsFocus;                          
-                                m_PropWindow.PropGrid[i, 2].Value = sVal.ObjVal;
-                            
-                            
-                            m_PropWindow.PropGrid[i, 2].FindController<SourceGrid.Cells.Controllers.CheckBox>().CheckedChanged += m_SelectCheckBoxEvent.SetCheckBoxStatus(i);
-                                break;
-                            }   
-
-                        }
-                    }
-                    else
-                    {
-                        m_PropWindow.PropGrid[m_ClickRow, 2].FindController<SourceGrid.Cells.Controllers.CheckBox>().CheckedChanged -= m_SelectCheckBoxEvent.SetCheckBoxStatus(m_ClickRow);
-                        m_PropWindow.PropGrid[m_ClickRow, m_ClickColumn].Value = sVal.ObjVal;
-                        m_PropWindow.PropGrid[m_ClickRow, 2].FindController<SourceGrid.Cells.Controllers.CheckBox>().CheckedChanged += m_SelectCheckBoxEvent.SetCheckBoxStatus(m_ClickRow);
-                    }
-                  
-                    log.Trace(str);
-
-                       
-
-                }
-
-                  object val = m_PropWindow.PropGrid[m_ClickRow, 2].Value;
-        }
-
-        void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
-        {
-            //这时后台线程已经完成,并返回了主线程,所以可以直接使用UI控件了 
-           
-            object val = m_PropWindow.PropGrid[m_ClickRow, 2].Value;
-      
-            log.Trace("Exit WorkThread");
-            m_ReqChangeValFlag = true;
-            m_PropWindow.PropGrid.Refresh();
-        }
-
     }
     //当选择了Grid的某个row ,修改Row的值,引发的事件
     class ChangeGridCellValEvent : SourceGrid.Cells.Controllers.ControllerBase

+ 2 - 2
OTSIncAMeasureApp/3-OTSDisplaySourceGridData/OTSSampleVisualPropertyInfo.cs

@@ -1281,7 +1281,7 @@ namespace OTSMeasureApp
 
                     case OTS_SAMPLE_PROP_GRID_ITEM_GROUPS.MEASURE_RESULTS:
                         {
-                            //a_nId = ResourceID.GrpMeasureResult;
+                           
                             // has measure result?
                             if (m_Sample. HasMeasureResult())
                             {
@@ -1315,7 +1315,7 @@ namespace OTSMeasureApp
 
                     default:
                         {
-                            // something wrong here, return nullptr
+                          
                             break;
                         }
                 }

+ 55 - 75
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/OTSSamplespaceWindow.cs

@@ -371,7 +371,7 @@ namespace OTSMeasureApp
         public void DrawRingShapeArea()
         {
             //手绘测量区域类型为圆形
-          
+
             RingGdiDataInput frmInput = new RingGdiDataInput();
             if (frmInput.ShowDialog() == DialogResult.OK)
             {
@@ -387,7 +387,7 @@ namespace OTSMeasureApp
                 Color MeasureColor = Color.Red;
                 CRingGDIObject newGDI;
 
-                newGDI = new CRingGDIObject(rectangle, sam.GetSampleGDIObject().NameOrHoleName, sam.GetSampleName(), MeasureColor);
+                newGDI = new CRingGDIObject(rectangle, sam.GetSampleGDIObject().HoleNo, sam.GetSampleName(), MeasureColor);
                 newGDI.SetRingWidth(ringwidth);
 
                 newGDI.SetZoomNumber(m_visualStage.GetZoomNum());
@@ -464,6 +464,7 @@ namespace OTSMeasureApp
             //重新绘制
             Invalidate();
         }
+        
         public void DisplaySample(SampleMeasurePara SMeasrueArea)
         {
             var m_Sample = m_MeasureAppForm.m_ProjParam.GetResultData().GetSampleByName(SMeasrueArea.sSampleName);
@@ -503,10 +504,10 @@ namespace OTSMeasureApp
                         {
                             PointF xHole = new PointF(SMeasrueArea.MeasureRect.Left, SMeasrueArea.MeasureRect.Top);
                             PointF yHole = new PointF(SMeasrueArea.MeasureRect.Right, SMeasrueArea.MeasureRect.Bottom);
-                            CDisplayGDIObject gdi = m_visualStage.GetCtrlCoordRect(xHole, yHole, (GDIType)SMeasrueArea.iShape, "", "");
+                            CDisplayGDIObject gdi = m_visualStage.GetCtrlCoordGDI(xHole, yHole, m_visualStage. ConvertShapeTypeToGDIType(SMeasrueArea.iShape), "", "");
                             gdi.SampleName = SMeasrueArea.sSampleName;
-                            gdi.NameOrHoleName = SMeasrueArea.sampleHoleName;
-                           
+                            gdi.HoleNo = SMeasrueArea.sampleHoleName;
+
                             CMeasureArea measureGdi;
                             if (m_visualStage.GetMeasureGdiObjectFromSampleGdi(gdi, out measureGdi))
                             {
@@ -536,7 +537,7 @@ namespace OTSMeasureApp
 
 
                             string sampleName = sam.GetSampleName();
-                            string sampleHoleName = sam.GetSampleGDIObject().NameOrHoleName;
+                            string sampleHoleName = sam.GetSampleGDIObject().HoleNo;
 
 
                             CVisualFieldGDIObject createRect = new CVisualFieldGDIObject(visualRect, (int)fld.GetOTSPosition().X, (int)fld.GetOTSPosition().Y, sampleHoleName, sampleName, ColorStr);
@@ -806,12 +807,12 @@ namespace OTSMeasureApp
                 //设置颜色
                 var ColorStr = OTSSamplespaceGraphicsPanelFun.GetColorValue(ColorType.SampleSelColor);
                 Color selColor = ColorStr;
-                CDisplayGDIObject sample = new CDisplayGDIObject(itemAdd.GetOrigionalDrawRegionF(), itemAdd.GDIType, itemAdd.NameOrHoleName, selColor);
+                CDisplayGDIObject sample = new CDisplayGDIObject(itemAdd.GetOrigionalDrawRegionF(), itemAdd.GDIType, itemAdd.HoleNo, selColor);
                 //累加样品数量
                 itemAdd.SampleCount += 1;
                 itemAdd.IsWorkSample = true;
                 sample.SampleName = SampleName;
-                sample.NameOrHoleName = itemAdd.NameOrHoleName;
+                sample.HoleNo = itemAdd.HoleNo;
 
 
                 var newSam = new CVisualSampleArea();
@@ -1444,7 +1445,7 @@ namespace OTSMeasureApp
                             this.CMStrip.Show(this, _Point);
 
 
-                            m_SampleHoleSelectName = item.GetMeasureGDIObject().NameOrHoleName;
+                            m_SampleHoleSelectName = item.GetMeasureGDIObject().HoleNo;
                             if (m_SampleSelectName != item.GetMeasureGDIObject().SampleName)
                             {
                                 m_SampleSelectName = item.GetSampleName();
@@ -1490,7 +1491,7 @@ namespace OTSMeasureApp
                             if (m_SampleSelectName != m_visualSamples[i].GetSampleName())
                             {
                                 m_SampleSelectName = m_visualSamples[i].GetSampleName();
-                                m_SampleHoleSelectName = m_visualSamples[i].GetMeasureGDIObject().NameOrHoleName;
+                                m_SampleHoleSelectName = m_visualSamples[i].GetMeasureGDIObject().HoleNo;
 
                                 m_visualSamples[i].SetIsWorkSample(true);
 
@@ -1512,7 +1513,7 @@ namespace OTSMeasureApp
 
                         this.CMStrip.Show(this, _Point);
 
-                        m_SampleHoleSelectName = gdiitem.NameOrHoleName;
+                        m_SampleHoleSelectName = gdiitem.HoleNo;
 
                         return;
                     }
@@ -2052,63 +2053,63 @@ namespace OTSMeasureApp
             {
 
 
-                 if (m_DrawMeasureType == DrawMeasureAreaActionType.InverseSelection)
-                    {
+                if (m_DrawMeasureType == DrawMeasureAreaActionType.InverseSelection)
+                {
                     var workspl = m_MeasureAppForm.m_ProjParam.GetWorkSample();
-                        foreach (var gdi in sam.GetMeasureFieldGDIObjects())
+                    foreach (var gdi in sam.GetMeasureFieldGDIObjects())
+                    {
+                        if (m_DrawMeasureGDIObject.IfContains(new Point((int)gdi.GetCenterPoint().X, (int)gdi.GetCenterPoint().Y)))
                         {
-                            if (m_DrawMeasureGDIObject.IfContains(new Point((int)gdi.GetCenterPoint().X, (int)gdi.GetCenterPoint().Y)))
-                            {
-                               gdi.Enable=!gdi.Enable;
-                               
-                              workspl.SetFieldEnable(new Point(gdi.OTSX,gdi.OTSY),gdi.Enable);
-                            }
+                            gdi.Enable = !gdi.Enable;
 
-                        
+                            workspl.SetFieldEnable(new Point(gdi.OTSX, gdi.OTSY), gdi.Enable);
                         }
-                    
-                        
-                   m_DrawMeasureGDIObject = null;
-
-                        this.Cursor = Cursors.Default;
-                        //设置手绘标识
 
-                        m_IsDrawMeasure = false;
 
                     }
-                    else if(m_DrawMeasureType == DrawMeasureAreaActionType.Rectangle || m_DrawMeasureType == DrawMeasureAreaActionType.Circle)
-                    {
-                        var item = m_DrawMeasureGDIObject;
 
 
-                        item.NameOrHoleName = sam.GetMeasureGDIObject().NameOrHoleName;
+                    m_DrawMeasureGDIObject = null;
 
-                        item.IsWorkSample = sam.GetMeasureGDIObject().IsWorkSample;
+                    this.Cursor = Cursors.Default;
+                    //设置手绘标识
 
-                        sam.GetMeasureFieldGDIObjects().Clear();
-                        sam.SetMeasureGDIObject(item);
+                    m_IsDrawMeasure = false;
 
-                        var para = m_visualStage.GetSampleMeasurePara(item);
+                }
+                else if (m_DrawMeasureType == DrawMeasureAreaActionType.Rectangle || m_DrawMeasureType == DrawMeasureAreaActionType.Circle)
+                {
+                    var item = m_DrawMeasureGDIObject;
 
-                        m_MeasureAppForm.m_ProjParam.SetWorkSampleHoleAndMeasureArea(para);
 
+                    item.HoleNo = sam.GetMeasureGDIObject().HoleNo;
 
-                        m_MeasureAppForm.SetRunType(MSR_RUN_TYPE.RUNMEASURE);
+                    item.IsWorkSample = sam.GetMeasureGDIObject().IsWorkSample;
 
-                        PrepareMeasureField(sam, MSR_RUN_TYPE.RUNMEASURE);
+                    sam.GetMeasureFieldGDIObjects().Clear();
+                    sam.SetMeasureGDIObject(item);
 
+                    var para = m_visualStage.GetSampleMeasurePara(item);
 
-                        m_DrawMeasureGDIObject = null;
+                    m_MeasureAppForm.m_ProjParam.SetWorkSampleHoleAndMeasureArea(para);
 
-                        this.Cursor = Cursors.Default;
-                        //设置手绘标识
 
-                        m_IsDrawMeasure = false;
+                    m_MeasureAppForm.SetRunType(MSR_RUN_TYPE.RUNMEASURE);
+
+                    PrepareMeasureField(sam, MSR_RUN_TYPE.RUNMEASURE);
+
+
+                    m_DrawMeasureGDIObject = null;
+
+                    this.Cursor = Cursors.Default;
+                    //设置手绘标识
+
+                    m_IsDrawMeasure = false;
+
+
+                }
 
 
-                    }
-                    
-               
 
             }
 
@@ -2652,9 +2653,9 @@ namespace OTSMeasureApp
                     {
                         PointF xHole = new PointF(SMeasrueArea.MeasureRect.Left, SMeasrueArea.MeasureRect.Top);
                         PointF yHole = new PointF(SMeasrueArea.MeasureRect.Right, SMeasrueArea.MeasureRect.Bottom);
-                        CDisplayGDIObject gdi = m_visualStage.GetCtrlCoordRect(xHole, yHole, (GDIType)SMeasrueArea.iShape, "", "");
+                        CDisplayGDIObject gdi = m_visualStage.GetCtrlCoordGDI(xHole, yHole, m_visualStage. ConvertShapeTypeToGDIType (SMeasrueArea.iShape), "", "");
                         gdi.SampleName = SMeasrueArea.sSampleName;
-                        gdi.NameOrHoleName = SMeasrueArea.sampleHoleName;
+                        gdi.HoleNo = SMeasrueArea.sampleHoleName;
 
                         CMeasureArea measureGdi;
                         if (m_visualStage.GetMeasureGdiObjectFromSampleGdi(gdi, out measureGdi))
@@ -2761,7 +2762,7 @@ namespace OTSMeasureApp
 
 
                 string sampleName = sam.GetSampleName();
-                string sampleHoleName = sam.GetSampleGDIObject().NameOrHoleName;
+                string sampleHoleName = sam.GetSampleGDIObject().HoleNo;
 
 
                 CVisualFieldGDIObject createRect = new CVisualFieldGDIObject(visualRect, otsPoint.X, otsPoint.Y, sampleHoleName, sampleName, ColorStr);
@@ -2863,10 +2864,10 @@ namespace OTSMeasureApp
 
                         //绘制图像
 
-                        CDisplayGDIObject createImageRect = new CDisplayGDIObject(ImgRegionF, r.OTSX, r.OTSY, r.SampleName, r.NameOrHoleName, ImgRegionWidth, ImgRegionHeight, GDIType.DrawFrameOfHoleBSEImage);
+                        CDisplayGDIObject createImageRect = new CDisplayGDIObject(ImgRegionF, r.OTSX, r.OTSY, r.SampleName, r.HoleNo, ImgRegionWidth, ImgRegionHeight, GDIType.DrawFrameOfHoleBSEImage);
                         //添加至List集合中
                         createImageRect.SetInitRegionF(r.GetOrigionalDrawRegionF());
-                        createImageRect.NameOrHoleName = r.NameOrHoleName;
+                        createImageRect.HoleNo = r.HoleNo;
                         createImageRect.SetZoomNumber(m_visualStage.GetZoomNum());
                         createImageRect.SetDisplayRefPoint(m_visualStage.GetDisplayRefPoint());
 
@@ -3223,34 +3224,12 @@ namespace OTSMeasureApp
         }
         public void InverseSelectWorkSampleMeasure()
         {
-            //COTSSample WSample = m_MeasureAppForm.m_ProjParam.GetWorkSample();
-            //var stype = m_MeasureAppForm.m_ProjParam.GetDefaultParam().GetSysType();
-            //OTSSampleVisualPropertyInfo MeasureInfo = new OTSSampleVisualPropertyInfo(WSample, stype);
-
-            //RectangleF measureSize = m_MeasureAppForm.m_ProjParam.CalculateMsrArea(MeasureInfo.SMeasurePara.sampleHoleName);
-            ////获取位置与尺寸
-            //MeasureInfo.SMeasurePara.MeasureRect.Location = measureSize.Location;
-            //MeasureInfo.SMeasurePara.MeasureRect.Size = measureSize.Size;
-            ////获取样品信息
-            //PointF xHole = new PointF(MeasureInfo.SMeasurePara.MeasureRect.Left, MeasureInfo.SMeasurePara.MeasureRect.Top);
-            //PointF yHole = new PointF(MeasureInfo.SMeasurePara.MeasureRect.Right, MeasureInfo.SMeasurePara.MeasureRect.Bottom);
-
-
-            ////定义测量区域
-            //RectangleF SampleRectangleF = m_visualStage.GetCtrlCoordRectF(xHole, yHole);
-            //CDisplayGDIObject m_MeasureGDIObject = m_visualStage.GetCtrlCoordRect(xHole, yHole, (GDIType)MeasureInfo.SMeasurePara.iShape, "", "");
-            //m_MeasureGDIObject.SetInitRegionF(SampleRectangleF);
-
-            //var sam = GetWorkingVisualSample();
-            //var mea = sam.GetMeasureGDIObject();
-            //CMeasureArea m_ResetMeasureGDIobjects = ResetMeasure(sam.GetSampleGDIObject(), m_MeasureGDIObject);
-            //mea.SetInitRegionF(m_ResetMeasureGDIobjects.GetOrigionalDrawRegionF());
-            //mea.Shape = m_ResetMeasureGDIobjects.Shape;
+
             m_DrawMeasureType = DrawMeasureAreaActionType.InverseSelection;
             m_IsDrawMeasure = true;
             m_DrawMeasureGDIObject = null;
             this.Cursor = Cursors.Hand;
-            //Invalidate();
+
 
         }
 
@@ -3294,6 +3273,7 @@ namespace OTSMeasureApp
         {
             sampleHoleImageBuffer = new CDisplayGDIObject(new RectangleF(0, 0, this.Width, this.Height), GDIType.SampleHoleImageBuffer); ;
             sampleHoleImageBuffer.BSEImage = new Bitmap(this.Width, this.Height);
+
         }
     }
 }

+ 10 - 10
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CDisplayGDIObject.cs

@@ -36,7 +36,7 @@ namespace OTSMeasureApp
             SetInitRegionF(m_OrigineRegionF);
             GDIType = cType;
             strContent = content;
-            NameOrHoleName = name;
+            HoleNo = name;
             ID = System.Guid.NewGuid().ToString();
             OTSX = -1;
             OTSY = -1;
@@ -59,7 +59,7 @@ namespace OTSMeasureApp
             m_OrigineRegionF = rect;
             SetInitRegionF(m_OrigineRegionF);
             GDIType = cType;
-            NameOrHoleName = name;
+            HoleNo = name;
             ID = System.Guid.NewGuid().ToString();
             OTSX = -1;
             OTSY = -1;
@@ -71,7 +71,7 @@ namespace OTSMeasureApp
             m_OrigineRegionF = rect;
             SetInitRegionF(m_OrigineRegionF);
             GDIType = cType;
-            NameOrHoleName = name;
+            HoleNo = name;
          
             SelColor = selColor;
             ID = System.Guid.NewGuid().ToString();
@@ -86,7 +86,7 @@ namespace OTSMeasureApp
             m_OrigineRegionF = rectSingle;
             SetInitRegionF(m_OrigineRegionF);
             GDIType = cType;
-            NameOrHoleName = name;
+            HoleNo = name;
            
             SelColor = selColor;
             SampleName = sampleName;
@@ -111,7 +111,7 @@ namespace OTSMeasureApp
          
             m_OrigineRegionF = rect;
             SetInitRegionF(m_OrigineRegionF);
-            NameOrHoleName = sampleHoleName;
+            HoleNo = sampleHoleName;
             SampleName = sampleName;
             //生成编号
             ID = System.Guid.NewGuid().ToString();
@@ -144,7 +144,7 @@ namespace OTSMeasureApp
             }
         
             //圆形
-            else if (createType == GDIType.StageBoundary_Circle)
+            else if (createType == GDIType.Circle)
             {
                 System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(this.selColor);
                 e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;  //图片柔顺模式选择
@@ -337,7 +337,7 @@ namespace OTSMeasureApp
             get { return selColor; }
             set { selColor = value; }
         }
-        public  string NameOrHoleName//holename when they are not field rectangle gdi object.
+        public  string HoleNo//holename when they are not field rectangle gdi object.
         {
             get { return nameOrHoleName; }
             set { nameOrHoleName = value; }
@@ -452,7 +452,7 @@ namespace OTSMeasureApp
             GraphicsPath GPath = new GraphicsPath();
 
            
-                if (measureItem.GDIType == GDIType.StageBoundary_Circle)
+                if (measureItem.GDIType == GDIType.Circle)
                 {
                     GPath.AddEllipse(GetZoomedRegionF());
                 }
@@ -697,7 +697,7 @@ namespace OTSMeasureApp
         public  CDisplayGDIObject Duplicate()
         {
             CDisplayGDIObject r = new CDisplayGDIObject();
-            r.NameOrHoleName = this.nameOrHoleName;
+            r.HoleNo = this.nameOrHoleName;
             r.SampleName = this.SampleName;
             r.m_OrigineRegionF = this.m_OrigineRegionF;
         
@@ -787,7 +787,7 @@ namespace OTSMeasureApp
     {
       
         //圆形
-        StageBoundary_Circle = 0,
+        Circle = 0,
         //圆角矩形
         StageBoundary_RoundedRectangle = 1,
         //样品孔中的文字

+ 6 - 6
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CMeasureArea.cs

@@ -30,12 +30,13 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel.VisualGDIObjects
 
             m_OrigineRegionF = rectMeasure;
             SetInitRegionF(m_OrigineRegionF);
-
-            NameOrHoleName = name;
+            SampleName = sampleName;
+            HoleNo = name;
             myshape = shape;
             SelColor = selColor;
 
-            SampleName = sampleName;
+           
+           
             ID = System.Guid.NewGuid().ToString();
             OTSX = -1;
             OTSY = -1;
@@ -45,7 +46,8 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel.VisualGDIObjects
             ID = System.Guid.NewGuid().ToString();
 
             this.SetOriginalPolygonPointFList(mPoint);
-
+            base.HoleNo=name;
+            base.sampleName=sampleName;
             myshape = shape;
             SelColor = selColor;
 
@@ -174,8 +176,6 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel.VisualGDIObjects
                     y = (p.Y + offset.Y);
                     scalePs.Add(new PointF(x, y));
 
-
-
                 }
                 m_PolygonPoints = scalePs;
 

+ 1 - 1
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CVisualFieldGDIObject.cs

@@ -14,7 +14,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
             m_OrigineRegionF = rectField;
             SetInitRegionF(m_OrigineRegionF);
 
-            NameOrHoleName = name;          
+            HoleNo = name;          
             SelColor = selColor;
             SampleName = sampleName;
             ID = System.Guid.NewGuid().ToString();

+ 1 - 1
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CVisualSampleArea.cs

@@ -71,7 +71,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
             m_SampleHoleGDIObject.SampleName = value;
         }
 
-        //public List<Point> PolygonPathPoints { get => polygonPathPoints; set => polygonPathPoints = value; }
+    
 
 
         public bool IsWorkSample()

+ 55 - 29
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/VisualGDIObjects/CVisualStage.cs

@@ -10,7 +10,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
     public class CVisualStage
     {
         //original data
-        CStage m_SStage;
+       
         CSEMStageData m_SEMStageData;
         //interchange object
         StageDrawingData m_OTSSampleStageData;
@@ -123,7 +123,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
         {
             foreach (var g in m_SampleHoleGDIObjects)
             {
-                if (g.NameOrHoleName == name)
+                if (g.HoleNo == name)
                 {
                     return g;
                 }
@@ -161,7 +161,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
             {
                 return;
             }
-            m_SStage = SStage;
+           
             m_SEMStageData = SEMStageData;
 
 
@@ -264,7 +264,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
 
                 Bourary = GetCtrlCoordRectF(stageLeftTop, stageRightBottom);
 
-                //sampleHoleImageBuffer = new Bitmap((int)Bourary.Width, (int)Bourary.Height);
+               
                 CDisplayGDIObject CreateBourary;
                 //0:圆角矩形 1:圆形 2:文字 3:矩形
                 if (SData.bStageShape == ShapeType.RECTANGLE)
@@ -273,10 +273,10 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
                 }
                 else
                 {
-                    CreateBourary = new CDisplayGDIObject(Bourary, GDIType.StageBoundary_Circle);
+                    CreateBourary = new CDisplayGDIObject(Bourary, GDIType.Circle);
                 }
 
-                //CreateBourary.Shape = StageShape;
+              
                 m_StageEdgeGDIObjects.Add(CreateBourary);
                 //绘制后的样品台中心位置
                 PointF m_Region = GetCenterPoint();
@@ -310,22 +310,22 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
                         }
                         else
                         {
-                            CreateHole = new CDisplayGDIObject(RecF, GDIType.StageBoundary_Circle);
+                            CreateHole = new CDisplayGDIObject(RecF, GDIType.Circle);
                         }
 
 
-                        CreateHole.NameOrHoleName = ChloeClrList[i].sHoleName;
+                        CreateHole.HoleNo = ChloeClrList[i].sHoleName;
                         m_SampleHoleGDIObjects.Add(CreateHole);
 
                         //添加文字
 
 
-                        CDisplayGDIObject CreateContent = GetCtrlCoordRect(xHole, yHole, GDIType.Rectangle, "", "");
+                        CDisplayGDIObject CreateContent = GetCtrlCoordGDI(xHole, yHole, GDIType.Rectangle, "", "");
                         //类型 文字:2
                         CreateContent.GDIType = GDIType.Text;
                         CreateContent.SetInitRegionF(CreateContent.GetZoomedRegionF());
                         CreateContent.strContent = ChloeClrList[i].sHoleName;
-                        CreateContent.NameOrHoleName = ChloeClrList[i].sHoleName;
+                        CreateContent.HoleNo = ChloeClrList[i].sHoleName;
                         m_ContentGDIObjects.Add(CreateContent);
                     }
                 }
@@ -336,13 +336,14 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
 
                 //获取矩形
                 CDisplayGDIObject CreateSTD;
-                if (StageShapes == (int)GDIType.StageBoundary_Circle)
+                GDIType gt = ConvertShapeTypeToGDIType(StageShapes);
+                if (gt == GDIType.Circle)
                 {
-                    CreateSTD = GetCtrlCoordRect(stageLeftTop, stageRightBottom, GDIType.SpecimenCircle, "", "");
+                    CreateSTD = GetCtrlCoordGDI(stageLeftTop, stageRightBottom, GDIType.SpecimenCircle, "", "");
                 }
                 else
                 {
-                    CreateSTD = GetCtrlCoordRect(stageLeftTop, stageRightBottom, GDIType.SpecimenRectangle, "", "");
+                    CreateSTD = GetCtrlCoordGDI(stageLeftTop, stageRightBottom, GDIType.SpecimenRectangle, "", "");
                 }
 
 
@@ -359,10 +360,9 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
         }
 
 
-        public CDisplayGDIObject GetCtrlCoordRect(PointF OTSLeftTop, PointF OTSRightBottom, GDIType type, string content, string name)
+        public CDisplayGDIObject GetCtrlCoordGDI(PointF OTSLeftTop, PointF OTSRightBottom, GDIType type, string content, string name)
         {
-            try
-            {
+           
                 //将微米信息 转换为 像素
                 PointF xPoints = new Point();
                 PointF yPoints = new Point();
@@ -381,12 +381,8 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
                 float realEndY = Math.Max(xPoints.Y, yPoints.Y);
 
                 //创建矩形 并返回类型对象
-                return new CDisplayGDIObject(realStartX, realStartY, realEndX - Math.Abs(realStartX), realEndY - Math.Abs(realStartY), type, content, name);
-            }
-            catch (Exception)
-            {
-                return new CDisplayGDIObject(new Rectangle(), 0, "");
-            }
+                return new CDisplayGDIObject(realStartX, realStartY, realEndX - Math.Abs(realStartX), realEndY - Math.Abs(realStartY),  type, content, name);
+           
         }
         public RectangleF GetCtrlCoordRectF(PointF OTSLeftTop, PointF OTSRightBottom)
         {
@@ -522,7 +518,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
         {
             foreach (var hole in m_SampleHoleGDIObjects)
             {
-                if (hole.NameOrHoleName == holeName)
+                if (hole.HoleNo == holeName)
                 {
 
                     return hole;
@@ -610,7 +606,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
 
 
             //设置样品孔名称
-            sampleMeasurePara.sampleHoleName = item.NameOrHoleName;
+            sampleMeasurePara.sampleHoleName = item.HoleNo;
             //设置样品名称
             sampleMeasurePara.sSampleName = item.SampleName;
             //设置测量区域形状
@@ -620,7 +616,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
 
 
             sampleMeasurePara.sSampleName = MeasureItem.SampleName;
-            sampleMeasurePara.sampleHoleName = MeasureItem.NameOrHoleName;
+            sampleMeasurePara.sampleHoleName = MeasureItem.HoleNo;
             return sampleMeasurePara;
         }
 
@@ -681,7 +677,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
         public bool GetMeasureGdiObject(CDisplayGDIObject sampleGDIObject, ShapeType newShape, RectangleF newRegion, out CMeasureArea outMeasureRect)
         {
             CMeasureArea r = new CMeasureArea();
-            r.NameOrHoleName = sampleGDIObject.NameOrHoleName;
+            r.HoleNo = sampleGDIObject.HoleNo;
             r.SampleName = sampleGDIObject.SampleName;
             r.SetInitRegionF(sampleGDIObject.GetOrigionalDrawRegionF());
 
@@ -704,7 +700,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
         {
        
             CMeasureArea r = new CMeasureArea();
-            r.NameOrHoleName = sampleGDIObject.NameOrHoleName;
+            r.HoleNo = sampleGDIObject.HoleNo;
             r.SampleName = sampleGDIObject.SampleName;
             r.SetInitRegionF(sampleGDIObject.GetOrigionalDrawRegionF());
 
@@ -715,17 +711,47 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
             r.SetDisplayRefPoint(this.GetDisplayRefPoint());
             r.SetZoomNumber(sampleGDIObject.GetZoomNumber());
 
-            
+            r.Myshape=ConvertGDITypeToShapeType(sampleGDIObject.GDIType);
             r.SelColor = Color.Red;
 
             outMeasureRect = r;
             return true;
 
         }
+        public GDIType ConvertShapeTypeToGDIType(ShapeType shape)
+        {
+            GDIType t;
+            switch (shape)
+            {
+                case ShapeType.CIRCLE:
+                    t = GDIType.Circle; break;
+                case ShapeType.RECTANGLE:
+                    t = GDIType.Rectangle; break;
+                default:
+                    t = GDIType.Rectangle;
+                    break;
+            }
+            return t;
+        }
+        public ShapeType ConvertGDITypeToShapeType(GDIType t)
+        {
+            ShapeType s;
+            switch (t)
+            {
+                case GDIType.Circle:
+                    s = ShapeType.CIRCLE; break;
+                case GDIType.Rectangle:
+                    s = ShapeType.RECTANGLE; break;
+                default:
+                    s = ShapeType.RECTANGLE;
+                    break;
+            }
+            return s;
+        }
         #endregion
         public bool CheckMeasureAreaIsBeyondStageArea(RectangleF RMeasureArea)
         {
-            otsdataconst.DOMAIN_SHAPE iShape = (otsdataconst.DOMAIN_SHAPE)m_StageEdgeGDIObjects[0].GDIType;
+            otsdataconst.DOMAIN_SHAPE iShape = (otsdataconst.DOMAIN_SHAPE)ConvertGDITypeToShapeType( m_StageEdgeGDIObjects[0].GDIType);
             RectangleF pStageArea = m_StageEdgeGDIObjects[0].GetZoomedRegion;
             Rectangle pMeasureArea = new Rectangle((int)RMeasureArea.Left, (int)RMeasureArea.Top, (int)RMeasureArea.Width, (int)RMeasureArea.Height);