Procházet zdrojové kódy

fix the sample hole image display problem while switching different samples.

beijing před 2 roky
rodič
revize
b5c5d700eb

binární
Bin/x64/Debug/Config/SysData/IncSysLib/IncASTDData.db


+ 9 - 8
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/CVisualSampleArea.cs

@@ -13,9 +13,8 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
      
           CRectangleGDIObject m_SampleGDIObject;//
           CRectangleGDIObject m_MeasureGDIObject;//path
-        public  List<CRectangleGDIObject> m_ImageGDIObjects;
-        //BSE图像帧图 为了获取位置与尺寸
-        public  List<CRectangleGDIObject> m_ImageOfFieldGDIObjects;
+        private List<CRectangleGDIObject> frameOfHoleGDIObjects;// record all the position of the sampleHole image
+   
 
         private List<Point> polygonPathPoints;
         public float GetZoomNum()
@@ -36,8 +35,8 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
             m_MeasureGDIObject =  new CRectangleGDIObject();
 
 
-            m_ImageGDIObjects = new List<CRectangleGDIObject>();
-            m_ImageOfFieldGDIObjects = new List<CRectangleGDIObject>();
+           frameOfHoleGDIObjects = new List<CRectangleGDIObject>();
+        
 
 
         }
@@ -75,6 +74,8 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
         }
 
         public List<Point> PolygonPathPoints { get => polygonPathPoints; set => polygonPathPoints = value; }
+        public List<CRectangleGDIObject> FrameOfHoleGDIObjects { get => frameOfHoleGDIObjects; set => frameOfHoleGDIObjects = value; }
+
 
         public bool IsWorkSample()
         {
@@ -94,10 +95,10 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
 
         public void SetMeasureFieldGDIObjects(List<CRectangleGDIObject> value)
         {
-            m_MeasureGDIObject.SubItems().Clear();
+            m_MeasureGDIObject.ClearSubItems();
             foreach (var gdi in value)
             {
-                m_MeasureGDIObject.SubItems().Add(gdi);
+                m_MeasureGDIObject.AddSubItems(gdi);
             
             }
         }
@@ -108,7 +109,7 @@ namespace OTSMeasureApp._4_OTSSamplespaceGraphicsPanel
             gdi.SetZoomNumber(m_MeasureGDIObject.GetZoomNumber());
             gdi.SetDisplayRefPoint(m_MeasureGDIObject.GetDisplayRefPoint());
 
-            m_MeasureGDIObject.SubItems().Add(gdi);
+            m_MeasureGDIObject.AddSubItems(gdi);
 
 
         }

+ 13 - 5
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/CreateRectangle.cs

@@ -132,7 +132,7 @@ namespace OTSMeasureApp
         /// <param name="bseImageHeight">图像高度</param>
         /// <param name="drawImageLocation">图像开始位置</param>
         /// <param name="cType">绘制类型</param>
-        public CRectangleGDIObject(RectangleF rect, int OTSx, int OTSy, string sampleName, string sampleHoleName, Image bseImage, float bseImageWitdh, float bseImageHeight, CreateRectangleType cType)
+        public CRectangleGDIObject(RectangleF rect, int OTSx, int OTSy, string sampleName, string sampleHoleName,  float bseImageWitdh, float bseImageHeight, CreateRectangleType cType)
         {
          
             m_OrigineRegionF = rect;
@@ -142,7 +142,7 @@ namespace OTSMeasureApp
             //生成编号
             ID = System.Guid.NewGuid().ToString();
             //图像信息
-            BSEImage = bseImage;
+            //BSEImage = bseImage;
             //图像宽度
             BSEImageWitdh = bseImageWitdh;
             //图像高度
@@ -433,7 +433,7 @@ namespace OTSMeasureApp
                 e.Graphics.DrawRectangle(Pens.Black, m_Region);
             }
             //绘制样品孔BSE图像
-            else if (createType == CreateRectangleType.DrawSampleHoleBSEImage)
+            else if (createType == CreateRectangleType.DrawFrameOfHoleBSEImage)
             {
                 Color myColor = System.Drawing.Color.White;
                 System.Drawing.SolidBrush sampleBrush = new System.Drawing.SolidBrush(myColor);
@@ -977,7 +977,15 @@ namespace OTSMeasureApp
             if (subItems == null) subItems = new List<CRectangleGDIObject>();
             return subItems;
         }
-   
+        public void AddSubItems(CRectangleGDIObject item)
+        {
+            if (subItems == null) subItems = new List<CRectangleGDIObject>();
+            subItems.Add(item);
+        }
+        public void ClearSubItems()
+        {
+            subItems.Clear();
+        }
 
         public  void Zoom(PointF mousePoint, float zoomNum)
 
@@ -1285,7 +1293,7 @@ namespace OTSMeasureApp
         //颗粒分布图 鼠标
         ParticleAreaRectangle = 11,
         //绘制拍摄样品孔BSE照片
-        DrawSampleHoleBSEImage = 12,
+        DrawFrameOfHoleBSEImage = 12,
         //绘制sem中心点+
         DrawSEMCenterPoint=13,
         //绘制BSE采集标记

+ 80 - 95
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/OTSSamplespaceWindow.cs

@@ -10,7 +10,7 @@ using OTSModelSharp;
 using MyControls;
 using OTSModelSharp.ServiceCenter;
 using OTSMeasureApp._4_OTSSamplespaceGraphicsPanel;
-using static OTSDataType.otsdataconst;
+
 
 namespace OTSMeasureApp
 {
@@ -41,10 +41,6 @@ namespace OTSMeasureApp
         public List<CVisualSampleArea> m_visualSamples;
 
 
-        //BSE图像
-        //public  List<CRectangleGDIObject> m_AllHoleImageGDIObjects;
-        ////BSE图像帧图 为了获取位置与尺寸
-        //public  List<CRectangleGDIObject> m_AllHoleImageOfFieldGDIObjects;
         //手绘测量区域
         public static CRectangleGDIObject m_DrawMeasureGDIObject=new CRectangleGDIObject();
  
@@ -286,9 +282,6 @@ namespace OTSMeasureApp
                     //设置消息类型 拍摄样品孔
                     m_MeasureAppForm.SetRunType(MSR_RUN_TYPE.RUNSampleHoleImage);
 
-                    //TransferBseImageToWindow();
-                    //清除原图片信息
-                    //DeleteHoleBSEImageDataNoMessageBox();
                   
                     PrepareMeasureField(GetWorkingVisualSample(), MSR_RUN_TYPE.RUNSampleHoleImage);
                   
@@ -939,6 +932,7 @@ namespace OTSMeasureApp
             {
                 allobj.Add(s.GetSampleGDIObject());
                 allobj.Add(s.GetMeasureGDIObject());
+                allobj.AddRange(s.FrameOfHoleGDIObjects);
                 foreach (var f in s.GetMeasureFieldGDIObjects())
                 {
                     allobj.Add(f);
@@ -1249,7 +1243,7 @@ namespace OTSMeasureApp
                                 _Point = this.PointToClient(Cursor.Position);
                                 bool IsTrue = false;
                                 //设置编辑右键菜单项
-                                foreach (CRectangleGDIObject imageItem in sam2.m_ImageGDIObjects)
+                                foreach (CRectangleGDIObject imageItem in sam2.FrameOfHoleGDIObjects)
                                 {
                                     if (imageItem.SampleName == item.SampleName)
                                     {
@@ -1300,7 +1294,7 @@ namespace OTSMeasureApp
                                     //删除BSE照片
                                     bool IsTrue = false;
                                     //设置编辑右键菜单项
-                                    foreach (CRectangleGDIObject imageItem in item.m_ImageGDIObjects)
+                                    foreach (CRectangleGDIObject imageItem in item.FrameOfHoleGDIObjects)
                                     {
                                         if (imageItem.SampleName == item.GetSampleName())
                                         {
@@ -1330,7 +1324,7 @@ namespace OTSMeasureApp
                     }
                     if (GetWorkingVisualSample() != null)
                     {
-                        foreach (CRectangleGDIObject item in GetWorkingVisualSample().m_ImageGDIObjects)
+                        foreach (CRectangleGDIObject item in GetWorkingVisualSample().FrameOfHoleGDIObjects)
                         {
                             if (item.IfZoomContains(e.Location))
                             {
@@ -1425,25 +1419,7 @@ namespace OTSMeasureApp
                         return;
                     }
                    
-                    CRectangleGDIObject stageobj;
-                    if (m_visualStage.IfMouseInStage(e.Location, out stageobj))
-                    { 
-           
-                        MouseDownFunction(m_visualStage.GetAllGDIObject(), e);
-                        //样品
-                        MouseDownFunction(GetAllVisualSampleGDIObject(), e);
-
-                        if (GetWorkingVisualSample() != null)
-                        {
-                            //样品台中BSE图片
-                            MouseDownFunction(GetWorkingVisualSample().m_ImageGDIObjects, e);
-
-                        }
-                       
-
-                        //MouseDownFunction(m_AllHoleImageGDIObjects, e);
-
-                    }
+                  
 
                     //测量区域
                     if (Control.ModifierKeys == Keys.Control)// ctrl key is pressed,means changing position or altering the visual sample area.
@@ -1545,7 +1521,7 @@ namespace OTSMeasureApp
                       
                             if (sam1.GetSampleGDIObject().IfZoomContains(e.Location)|| sam1.GetMeasureGDIObject().IfZoomContains(e.Location))
                             {
-                                NLog.LogManager.GetCurrentClassLogger().Info(sam1.GetMeasureGDIObject().GetOrigionalDrawRegionF().ToString());
+                                //NLog.LogManager.GetCurrentClassLogger().Info(sam1.GetMeasureGDIObject().GetOrigionalDrawRegionF().ToString());
                                 var measureItem = sam1.GetMeasureGDIObject();
 
 
@@ -1568,7 +1544,22 @@ namespace OTSMeasureApp
                         }
                       
                     }
-                                  
+
+                    CRectangleGDIObject stageobj;
+                    if (m_visualStage.IfMouseInStage(e.Location, out stageobj))
+                    {
+
+                        MouseDownFunction(m_visualStage.GetAllGDIObject(), e);
+                        //样品
+                        MouseDownFunction(GetAllVisualSampleGDIObject(), e);
+
+
+
+
+
+                    }
+
+
                 }
             }
             //重绘控件
@@ -1887,21 +1878,21 @@ namespace OTSMeasureApp
                                         }
 
                                     
-                                }
-                                else if(curMeasureGdi.IsDragging)
-                                {
-                                    if (curMeasureGdi.GetGPath().IsVisible(e.Location))
-                                    {
-                                        if (m_visualStage.GetEdgeGDIObj().GetGPath().IsVisible(e.Location))
-                                       {
+                        }
+                else if(curMeasureGdi.IsDragging)
+                {
+                    if (curMeasureGdi.GetGPath().IsVisible(e.Location))
+                    {
+                        if (m_visualStage.GetEdgeGDIObj().GetGPath().IsVisible(e.Location))
+                        {
                                           
-                                                curMeasureGdi.PositionAltering(e.Location, true);
+                                curMeasureGdi.PositionAltering(e.Location, true);
                                            
-                                        }
+                        }
                                        
-                                    }
+                    }
                     
-                                }
+                }
                    
             }
             else
@@ -1916,10 +1907,10 @@ namespace OTSMeasureApp
                 if (GetWorkingVisualSample() != null)
                 {
                     //样品孔BSE图片
-                    MouseMoveFucntion(GetWorkingVisualSample().m_ImageGDIObjects, e);
+                    MouseMoveFucntion(GetWorkingVisualSample().FrameOfHoleGDIObjects, e);
 
                 }
-                //MouseMoveFucntion(m_AllHoleImageGDIObjects, e);
+           
 
 
             }
@@ -2013,13 +2004,6 @@ namespace OTSMeasureApp
             //样品 
             MouseUpFucntion(GetAllVisualSampleGDIObject(), e);
 
-            if (GetWorkingVisualSample() != null)
-            {
-                //样品孔中BSE图片
-                MouseUpFucntion(GetWorkingVisualSample().m_ImageGDIObjects, e);
-
-            }
-            //MouseUpFucntion(m_AllHoleImageGDIObjects, e);
 
 
 
@@ -2037,19 +2021,17 @@ namespace OTSMeasureApp
             {
                 if (GetWorkingVisualSample() != null)
                 {
-                    if (GetWorkingVisualSample().m_ImageGDIObjects.Count > 0)
+                    if (GetWorkingVisualSample().FrameOfHoleGDIObjects.Count > 0)
                     {
-                        OnPaint(e, GetWorkingVisualSample().m_ImageGDIObjects);
+                        OnPaint(e, GetWorkingVisualSample().FrameOfHoleGDIObjects);
                     }
 
                 }
-                //if (m_AllHoleImageGDIObjects.Count > 0)
-                //{
-                //    OnPaint(e, m_AllHoleImageGDIObjects);
-
-                //}
+              
                
             }
+
+
             OnPaint(e, GetAllVisualFieldGdiObject());
 
             if (m_DrawMeasureGDIObject != null)
@@ -2150,15 +2132,7 @@ namespace OTSMeasureApp
                     control_Ruler2.SetValue(control_Ruler2.RulerWidth);
                 }
             }
-            if (GetWorkingVisualSample() != null)
-            {
-
-                MouseWheelFunction(GetWorkingVisualSample().m_ImageGDIObjects, e.Location, currentZoomNum);
-            }
-            //if (m_AllHoleImageGDIObjects.Count > 0)
-            //{
-            //    MouseWheelFunction(m_AllHoleImageGDIObjects, e.Location, currentZoomNum);
-            //}
+           
          
 
             MouseWheelFunction(GetAllVisualSampleGDIObject(), e.Location, currentZoomNum);
@@ -2220,7 +2194,7 @@ namespace OTSMeasureApp
                 }
                 if (item.IsMoving)
                 {
-
+                   
                     item.IsMoving = false;
                     item.DraggingPoint = Point.Empty;
 
@@ -2445,14 +2419,11 @@ namespace OTSMeasureApp
 
                 if (sam != null)
                 {
-                    if (sam.m_ImageGDIObjects != null)
+                    if (sam.FrameOfHoleGDIObjects != null)
                     {
-                        sam.m_ImageGDIObjects.Clear();
-                    }
-                    if (sam.m_ImageOfFieldGDIObjects != null)
-                    {
-                        sam.m_ImageOfFieldGDIObjects.Clear();
+                        sam.FrameOfHoleGDIObjects.Clear();
                     }
+                    
                     if (m_DrawMeasureGDIObject != null)
                     {
                         m_DrawMeasureGDIObject = null;
@@ -2695,7 +2666,23 @@ namespace OTSMeasureApp
                     {
                         r.SetDisplayRefPoint(m_visualStage.GetDisplayRefPoint());
                         r.SetZoomNumber(m_visualStage.GetZoomNum());
-                        sam.m_ImageOfFieldGDIObjects.Add(r);
+                        RectangleF ImgRegionF;
+                        float ImgRegionWidth;
+                        float ImgRegionHeight;
+
+                        ImgRegionF = r.GetOrigionalDrawRegionF();
+                        ImgRegionWidth = Convert.ToInt32(ImgRegionF.Width);
+                        ImgRegionHeight = Convert.ToInt32(ImgRegionF.Height);
+
+                        //绘制图像
+                       
+                        CRectangleGDIObject createImageRect = new CRectangleGDIObject(ImgRegionF, r.OTSX, r.OTSY, r.SampleName, r.NameOrHoleName,  ImgRegionWidth, ImgRegionHeight, CreateRectangleType.DrawFrameOfHoleBSEImage);
+                        //添加至List集合中
+                        createImageRect.SetInitRegionF(r.GetOrigionalDrawRegionF());
+                        createImageRect.NameOrHoleName = r.NameOrHoleName;
+                        createImageRect.SetZoomNumber(m_visualStage.GetZoomNum());
+                        createImageRect.SetDisplayRefPoint(m_visualStage.GetDisplayRefPoint());
+                        sam.FrameOfHoleGDIObjects.Add(createImageRect);
                     }
                    
                 }
@@ -2987,32 +2974,30 @@ namespace OTSMeasureApp
             Image bseImage ;
             int m_iWidth = width;
             int m_iHeigh = height;
-            RectangleF ImgRegionF;
-            float ImgRegionWidth;
-            float ImgRegionHeight ;
-            if (sam.m_ImageOfFieldGDIObjects.Count > 0)
+          
+            if (sam.FrameOfHoleGDIObjects.Count > 0)
             {
-                for (int i = 0; i < sam.m_ImageOfFieldGDIObjects.Count; i++)
+                for (int i = 0; i < sam.FrameOfHoleGDIObjects.Count; i++)
                 {
                    
                     var ctrlPos = m_visualStage.OTSCoordToCtrlCoord(fieldPos);
-                    if (sam.m_ImageOfFieldGDIObjects[i].IfContains(ctrlPos))
+                    if (sam.FrameOfHoleGDIObjects[i].IfContains(ctrlPos))
                     { 
-                        ImgRegionF = sam.m_ImageOfFieldGDIObjects[i].GetOrigionalDrawRegionF();
-                        ImgRegionWidth = Convert.ToInt32(ImgRegionF.Width);
-                        ImgRegionHeight = Convert.ToInt32(ImgRegionF.Height);
+                        //ImgRegionF = sam.FieldGDIObjects[i].GetOrigionalDrawRegionF();
+                        //ImgRegionWidth = Convert.ToInt32(ImgRegionF.Width);
+                        //ImgRegionHeight = Convert.ToInt32(ImgRegionF.Height);
 
                         //获取图片
                         bseImage = CImageHandler.ToGrayBitmap(ImageData, m_iWidth, m_iHeigh);
-                     
+                        sam.FrameOfHoleGDIObjects[i].BSEImage = bseImage;
                         //绘制图像
-                        CRectangleGDIObject createImageRect =new CRectangleGDIObject (ImgRegionF, fieldPos.X, fieldPos.Y, itemWorkSample.SampleName, itemWorkSample.NameOrHoleName, bseImage, ImgRegionWidth, ImgRegionHeight, CreateRectangleType.DrawSampleHoleBSEImage);
-                        //添加至List集合中
-                        createImageRect.SetInitRegionF(sam.m_ImageOfFieldGDIObjects[i].GetOrigionalDrawRegionF());
-                        createImageRect.NameOrHoleName =sam. m_ImageOfFieldGDIObjects[i].NameOrHoleName;
-                        createImageRect.SetZoomNumber(m_visualStage.GetZoomNum());
-                        createImageRect.SetDisplayRefPoint(m_visualStage.GetDisplayRefPoint());
-                        sam. m_ImageGDIObjects.Add(createImageRect);
+                        //CRectangleGDIObject createImageRect =new CRectangleGDIObject (ImgRegionF, fieldPos.X, fieldPos.Y, itemWorkSample.SampleName, itemWorkSample.NameOrHoleName, bseImage, ImgRegionWidth, ImgRegionHeight, CreateRectangleType.DrawFrameOfHoleBSEImage);
+                        ////添加至List集合中
+                        //createImageRect.SetInitRegionF(sam.FieldGDIObjects[i].GetOrigionalDrawRegionF());
+                        //createImageRect.NameOrHoleName =sam. FieldGDIObjects[i].NameOrHoleName;
+                        //createImageRect.SetZoomNumber(m_visualStage.GetZoomNum());
+                        //createImageRect.SetDisplayRefPoint(m_visualStage.GetDisplayRefPoint());
+                        //sam. FrameOfHoleGDIObjects.Add(createImageRect);
                        
                         break;
                     }
@@ -3029,8 +3014,8 @@ namespace OTSMeasureApp
         public void DeleteHoleBSEImageDataNoMessageBox()
         {
           
-            GetWorkingVisualSample().m_ImageOfFieldGDIObjects.Clear();
-            GetWorkingVisualSample().m_ImageGDIObjects.Clear();
+            //GetWorkingVisualSample().FieldGDIObjects.Clear();
+            GetWorkingVisualSample().FrameOfHoleGDIObjects.Clear();
             Invalidate();
 
         }

+ 5 - 5
OTSIncAMeasureApp/OTSIncAMeasureAppForm.cs

@@ -291,20 +291,20 @@ namespace OTSMeasureApp
         public void SwitchWSample(string sNewWorkSampleName)
         {
             m_ProjParam.SetWorkSample(sNewWorkSampleName);
-         
-            m_SolutionWindows.SwitchSample(m_ProjParam.GetWorkSampleName());
 
+         
 
+            m_SolutionWindows.SwitchSample(sNewWorkSampleName);
             //获取新工作样品属性值
             OTSSamplePropertyInfo SMInfo = new OTSSamplePropertyInfo();
             m_ProjParam.GetWorkSamplePerameter(m_ProjParam.GetWorkSample(), ref SMInfo);
   
             m_SPropertyWindows.DisplaySampleMeasureInfo(SMInfo);
-            //发送新的样品名给Treeview
-            m_SolutionWindows.SwitchSample(sNewWorkSampleName);
+           
+           
             //发送想你的样品名给Sample
             m_SamplepaceWindow.SwitchWorkSample(sNewWorkSampleName);
-            //根据节点设置样品台窗口中所选择的样品名称
+          
          
 
 

+ 141 - 48
OTSIncAReportApp/OTSIncAReportApp.csproj

@@ -332,107 +332,157 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="1-UI\Control_Grids\SpectrumExportConfirmation.cs" />
+    <Compile Include="1-UI\Control_Grids\SpectrumExportConfirmation.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_Grids\SpectrumExportConfirmation.Designer.cs">
       <DependentUpon>SpectrumExportConfirmation.cs</DependentUpon>
     </Compile>
     <Compile Include="1-UI\ElementSubscript.cs" />
-    <Compile Include="1-UI\frmCharts.cs" />
+    <Compile Include="1-UI\frmCharts.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\frmCharts.Designer.cs">
       <DependentUpon>frmCharts.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\frmMeasureRstMgr.cs" />
+    <Compile Include="1-UI\frmMeasureRstMgr.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\frmMeasureRstMgr.Designer.cs">
       <DependentUpon>frmMeasureRstMgr.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\frmReMeasure.cs" />
+    <Compile Include="1-UI\frmReMeasure.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\frmReMeasure.Designer.cs">
       <DependentUpon>frmReMeasure.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\OTSDisplaySourceGridData\frmReportConditionChoose.cs" />
+    <Compile Include="1-UI\OTSDisplaySourceGridData\frmReportConditionChoose.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSDisplaySourceGridData\frmReportConditionChoose.Designer.cs">
       <DependentUpon>frmReportConditionChoose.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\frmMultiSourceSelect.cs" />
+    <Compile Include="1-UI\frmMultiSourceSelect.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\frmMultiSourceSelect.Designer.cs">
       <DependentUpon>frmMultiSourceSelect.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\frmSampleImage.cs" />
+    <Compile Include="1-UI\frmSampleImage.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\frmSampleImage.Designer.cs">
       <DependentUpon>frmSampleImage.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\frmTables.cs" />
+    <Compile Include="1-UI\frmTables.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\frmTables.Designer.cs">
       <DependentUpon>frmTables.cs</DependentUpon>
     </Compile>
     <Compile Include="1-UI\Control_Graph\OTSIncAReportGraphFuncation\SortParticleDistribution.cs" />
-    <Compile Include="1-UI\Controls\myColorComboBox.cs" />
+    <Compile Include="1-UI\Controls\myColorComboBox.cs">
+      <SubType>Component</SubType>
+    </Compile>
     <Compile Include="1-UI\Controls\myColorComboBox.Designer.cs">
       <DependentUpon>myColorComboBox.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Control_Grids\ParticlesGridDevidePage.cs" />
+    <Compile Include="1-UI\Control_Grids\ParticlesGridDevidePage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_Grids\ParticlesGridDevidePage.Designer.cs">
       <DependentUpon>ParticlesGridDevidePage.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Control_ECharts\EChart_ParticlesComposition.cs" />
+    <Compile Include="1-UI\Control_ECharts\EChart_ParticlesComposition.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_ECharts\EChart_ParticlesComposition.Designer.cs">
       <DependentUpon>EChart_ParticlesComposition.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Control_ECharts\EChart_Trianglediagram.cs" />
+    <Compile Include="1-UI\Control_ECharts\EChart_Trianglediagram.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_ECharts\EChart_Trianglediagram.Designer.cs">
       <DependentUpon>EChart_Trianglediagram.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Control_Graph\Controls\Control_DrawDistrbutionImageAndBSE.cs" />
+    <Compile Include="1-UI\Control_Graph\Controls\Control_DrawDistrbutionImageAndBSE.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_Graph\Controls\Control_DrawDistrbutionImageAndBSE.designer.cs">
       <DependentUpon>Control_DrawDistrbutionImageAndBSE.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Control_Graph\Controls\Control_DrawDistrbutionSortImage.cs" />
+    <Compile Include="1-UI\Control_Graph\Controls\Control_DrawDistrbutionSortImage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_Graph\Controls\Control_DrawDistrbutionSortImage.designer.cs">
       <DependentUpon>Control_DrawDistrbutionSortImage.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Control_Graph\Controls\Control_Ruler.cs" />
+    <Compile Include="1-UI\Control_Graph\Controls\Control_Ruler.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_Graph\Controls\Control_Ruler.designer.cs">
       <DependentUpon>Control_Ruler.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Control_Graph\Controls\Control_XRayTable.cs" />
+    <Compile Include="1-UI\Control_Graph\Controls\Control_XRayTable.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_Graph\Controls\Control_XRayTable.designer.cs">
       <DependentUpon>Control_XRayTable.cs</DependentUpon>
     </Compile>
     <Compile Include="1-UI\Control_Graph\OTSIncAReportGraphFuncation\OTSImageDisHelp.cs" />
-    <Compile Include="1-UI\Controls\OTSGridView.cs" />
+    <Compile Include="1-UI\Controls\OTSGridView.cs">
+      <SubType>Component</SubType>
+    </Compile>
     <Compile Include="1-UI\Controls\OTSGridView.designer.cs">
       <DependentUpon>OTSGridView.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Control_Grids\CompositionDistributionGrid.cs" />
+    <Compile Include="1-UI\Control_Grids\CompositionDistributionGrid.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_Grids\CompositionDistributionGrid.designer.cs">
       <DependentUpon>CompositionDistributionGrid.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Control_Grids\ElementCompositionAvgGrid.cs" />
+    <Compile Include="1-UI\Control_Grids\ElementCompositionAvgGrid.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_Grids\ElementCompositionAvgGrid.designer.cs">
       <DependentUpon>ElementCompositionAvgGrid.cs</DependentUpon>
     </Compile>
     <Compile Include="1-UI\Control_Grids\OTSIncAReportGridsFuncation\OTSReportGridsFun.cs" />
-    <Compile Include="1-UI\Control_Grids\ParticlesSizeGrid.cs" />
+    <Compile Include="1-UI\Control_Grids\ParticlesSizeGrid.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_Grids\ParticlesSizeGrid.designer.cs">
       <DependentUpon>ParticlesSizeGrid.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Control_Grids\ResultGrid.cs" />
+    <Compile Include="1-UI\Control_Grids\ResultGrid.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Control_Grids\ResultGrid.designer.cs">
       <DependentUpon>ResultGrid.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Frm_UserProgress.cs" />
+    <Compile Include="1-UI\Frm_UserProgress.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\Frm_UserProgress.designer.cs">
       <DependentUpon>Frm_UserProgress.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_criterion.cs" />
+    <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_criterion.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_criterion.Designer.cs">
       <DependentUpon>OTSReport_criterion.cs</DependentUpon>
     </Compile>
-    <Compile Include="ReportTemplate\GBReport.cs" />
+    <Compile Include="ReportTemplate\GBReport.cs">
+      <SubType>Component</SubType>
+    </Compile>
     <Compile Include="ReportTemplate\GBReport.Designer.cs">
       <DependentUpon>GBReport.cs</DependentUpon>
     </Compile>
-    <Compile Include="ReportTemplate\OTS_DEVReport.cs" />
+    <Compile Include="ReportTemplate\OTS_DEVReport.cs">
+      <SubType>Component</SubType>
+    </Compile>
     <Compile Include="ReportTemplate\OTS_DEVReport.Designer.cs">
       <DependentUpon>OTS_DEVReport.cs</DependentUpon>
     </Compile>
@@ -455,103 +505,147 @@
     <Compile Include="3-ServiceCenter\DataOperation\DataAccess\SqlHelper.cs" />
     <Compile Include="3-ServiceCenter\DataOperation\DataAccess\XMLoperate.cs" />
     <Compile Include="1-UI\OTSDisplaySourceGridData\ChangeGridCellValEvent.cs" />
-    <Compile Include="1-UI\GBCalculate\ASTMStandardABCDDS.cs" />
+    <Compile Include="1-UI\GBCalculate\ASTMStandardABCDDS.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\GBCalculate\ASTMStandardABCDDS.designer.cs">
       <DependentUpon>ASTMStandardABCDDS.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\GBCalculate\ChineseStandardABCDDS.cs" />
+    <Compile Include="1-UI\GBCalculate\ChineseStandardABCDDS.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\GBCalculate\ChineseStandardABCDDS.designer.cs">
       <DependentUpon>ChineseStandardABCDDS.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\GBCalculate\DINStandardABCDDS.cs" />
+    <Compile Include="1-UI\GBCalculate\DINStandardABCDDS.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\GBCalculate\DINStandardABCDDS.designer.cs">
       <DependentUpon>DINStandardABCDDS.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\GBCalculate\NationalStandardMethodTwo.cs" />
+    <Compile Include="1-UI\GBCalculate\NationalStandardMethodTwo.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\GBCalculate\NationalStandardMethodTwo.designer.cs">
       <DependentUpon>NationalStandardMethodTwo.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\OTSMgrInfo\FormNewLJFile.cs" />
+    <Compile Include="1-UI\OTSMgrInfo\FormNewLJFile.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSMgrInfo\FormNewLJFile.Designer.cs">
       <DependentUpon>FormNewLJFile.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\OTSMgrInfo\frmPartSizeEditorNew.cs" />
+    <Compile Include="1-UI\OTSMgrInfo\frmPartSizeEditorNew.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSMgrInfo\frmPartSizeEditorNew.Designer.cs">
       <DependentUpon>frmPartSizeEditorNew.cs</DependentUpon>
     </Compile>
     <Compile Include="2-CommonFunction\OTSDataMgrFunction\ResultDataMgr.cs" />
     <Compile Include="1-UI\OTSDisplaySourceGridData\OTSSourceGrid.cs" />
-    <Compile Include="1-UI\OTSMgrInfo\Triangulation_Edit.cs" />
+    <Compile Include="1-UI\OTSMgrInfo\Triangulation_Edit.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSMgrInfo\Triangulation_Edit.Designer.cs">
       <DependentUpon>Triangulation_Edit.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\frmReportApp.cs" />
+    <Compile Include="1-UI\frmReportApp.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\frmReportApp.Designer.cs">
       <DependentUpon>frmReportApp.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\OTSMgrInfo\Triangulation_Item.cs" />
+    <Compile Include="1-UI\OTSMgrInfo\Triangulation_Item.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSMgrInfo\Triangulation_Item.Designer.cs">
       <DependentUpon>Triangulation_Item.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\OTSMgrInfo\Triangulation_List.cs" />
+    <Compile Include="1-UI\OTSMgrInfo\Triangulation_List.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSMgrInfo\Triangulation_List.Designer.cs">
       <DependentUpon>Triangulation_List.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Controls\OTSPeriodicTable\OTSPeriodicTableForm.cs" />
+    <Compile Include="1-UI\Controls\OTSPeriodicTable\OTSPeriodicTableForm.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\Controls\OTSPeriodicTable\OTSPeriodicTableForm.Designer.cs">
       <DependentUpon>OTSPeriodicTableForm.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Controls\OTSPeriodicTable\OTSPeriodicTableForm_Small.cs" />
+    <Compile Include="1-UI\Controls\OTSPeriodicTable\OTSPeriodicTableForm_Small.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\Controls\OTSPeriodicTable\OTSPeriodicTableForm_Small.Designer.cs">
       <DependentUpon>OTSPeriodicTableForm_Small.cs</DependentUpon>
     </Compile>
     <Compile Include="1-UI\Controls\OTSPeriodicTable\Periodic.cs" />
-    <Compile Include="1-UI\Controls\OTSPeriodicTable\ThePeriodicTable.cs" />
+    <Compile Include="1-UI\Controls\OTSPeriodicTable\ThePeriodicTable.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Controls\OTSPeriodicTable\ThePeriodicTable.designer.cs">
       <DependentUpon>ThePeriodicTable.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Controls\OTSPeriodicTable\ThePeriodicTable_Small.cs" />
+    <Compile Include="1-UI\Controls\OTSPeriodicTable\ThePeriodicTable_Small.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Controls\OTSPeriodicTable\ThePeriodicTable_Small.designer.cs">
       <DependentUpon>ThePeriodicTable_Small.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Controls\OTSPeriodicTable\User_Element.cs" />
+    <Compile Include="1-UI\Controls\OTSPeriodicTable\User_Element.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Controls\OTSPeriodicTable\User_Element.designer.cs">
       <DependentUpon>User_Element.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\Controls\OTSPeriodicTable\User_Element_Small.cs" />
+    <Compile Include="1-UI\Controls\OTSPeriodicTable\User_Element_Small.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="1-UI\Controls\OTSPeriodicTable\User_Element_Small.designer.cs">
       <DependentUpon>User_Element_Small.cs</DependentUpon>
     </Compile>
     <Compile Include="1-UI\OTSTemplateDesigner\Export_NPOI_Excel.cs" />
     <Compile Include="1-UI\OTSTemplateDesigner\Export_ReportTemplate.cs" />
-    <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_Export.cs" />
+    <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_Export.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_Export.Designer.cs">
       <DependentUpon>OTSReport_Export.cs</DependentUpon>
     </Compile>
-    <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_GetEChartImage.cs" />
+    <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_GetEChartImage.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_GetEChartImage.Designer.cs">
       <DependentUpon>OTSReport_GetEChartImage.cs</DependentUpon>
     </Compile>
     <Compile Include="1-UI\OTSRibbon\OTSRibbonFun.cs" />
     <Compile Include="1-UI\OTSDisplaySourceGridData\OTSSampleReportInfo\OTSSampleReportInfo.cs" />
-    <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_TemplateDesignerRM.cs" />
+    <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_TemplateDesignerRM.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSTemplateDesigner\OTSReport_TemplateDesignerRM.Designer.cs">
       <DependentUpon>OTSReport_TemplateDesignerRM.cs</DependentUpon>
     </Compile>
     <Compile Include="1-UI\OTSTreeViewData\OTSTreeViewData.cs" />
-    <Compile Include="1-UI\OutputNlog.cs" />
+    <Compile Include="1-UI\OutputNlog.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OutputNlog.Designer.cs">
       <DependentUpon>OutputNlog.cs</DependentUpon>
     </Compile>
     <Compile Include="3-ServiceCenter\HardwareController.cs" />
     <Compile Include="1-UI\Control_Graph\Controls\OutPIC.cs" />
-    <Compile Include="Help.cs" />
+    <Compile Include="Help.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="Help.Designer.cs">
       <DependentUpon>Help.cs</DependentUpon>
     </Compile>
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="1-UI\OTSMgrInfo\frmReportSysConfig.cs" />
+    <Compile Include="1-UI\OTSMgrInfo\frmReportSysConfig.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="1-UI\OTSMgrInfo\frmReportSysConfig.Designer.cs">
       <DependentUpon>frmReportSysConfig.cs</DependentUpon>
     </Compile>
@@ -676,7 +770,6 @@
     <EmbeddedResource Include="1-UI\OTSTemplateDesigner\OTSReport_TemplateDesignerRM.resx">
       <DependentUpon>OTSReport_TemplateDesignerRM.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="Properties\licenses.licx" />
     <EmbeddedResource Include="ReportTemplate\GBReport.resx">
       <DependentUpon>GBReport.cs</DependentUpon>
     </EmbeddedResource>