Example #1
0
        private void btnCreateGrid_Click(object sender, EventArgs e)
        {
            int x = int.TryParse(tboxColumns.Text, out x) ? x : 1;
            int y = int.TryParse(tboxRows.Text, out y) ? y : 1;
            TmpColumnsGrid.Clear();
            for (var i = 0; i < x; i++)
            {
                RoiGrade tmp = new RoiGrade();
                tmp.Name = (i + 1).ToString();
                tmp.Start = 0;
                tmp.End = 0;
                TmpColumnsGrid.Add(tmp);
            }
            TmpRowsGrid.Clear();
            for (var i = 0; i < y; i++)
            {
                RoiGrade tmp = new RoiGrade();
                tmp.Name = (i + 1).ToString();
                tmp.Start = 0;
                tmp.End = 0;
                TmpRowsGrid.Add(tmp);
            }

            gvColumns.DataSource = typeof(List<RoiGrade>);
            gvColumns.DataSource = bsColumns.DataSource;
            gvRows.DataSource = typeof(List<RoiGrade>);
            gvRows.DataSource = bsRows.DataSource;

            // Clear and create list of ROI-Pieces like ROI-11, ROI-12 etc...
            bsRoiList.DataSource = GetSubPieceList();
            cboxSubPieceOfPoint.DataSource = bsRoiList.DataSource;
            cboxSubPieceOfGrade.DataSource = bsRoiList.DataSource;

            // Create new TmpPointSubPieces
            // 1. 先加入一筆 ALL 的 SubPiece 指全部使用相同設定
            TmpPointSubPieces.Clear();
            PointSubPiece allsame = new PointSubPiece();
            allsame.Name = "ALL";
            allsame.Grades = new List<PointGrade>();
            foreach (FlawTypeNameExtend i in PxPVariable.FlawTypeName)
            {
                PointGrade tmpPG = new PointGrade();
                tmpPG.ClassId = i.FlawType;
                tmpPG.ClassName = i.Name;
                tmpPG.Score = 0;

                allsame.Grades.Add(tmpPG);
            }
            TmpPointSubPieces.Add(allsame);

            // 2. 用 Rows 和 Columns 造出所有欄位
            foreach (RoiGrade r in TmpRowsGrid)
            {
                foreach (RoiGrade c in TmpColumnsGrid)
                {
                    PointSubPiece tmpPointSubPiece = new PointSubPiece();
                    tmpPointSubPiece.Name = "ROI-" + r.Name + c.Name;
                    tmpPointSubPiece.Grades = new List<PointGrade>();
                    foreach (FlawTypeNameExtend i in PxPVariable.FlawTypeName)
                    {
                        PointGrade tmpPG = new PointGrade();
                        tmpPG.ClassId = i.FlawType;
                        tmpPG.ClassName = i.Name;
                        tmpPG.Score = 0;
                        tmpPointSubPiece.Grades.Add(tmpPG);
                    }
                    TmpPointSubPieces.Add(tmpPointSubPiece);
                }
            }

            // Create new TmpMarkSubPieces
            // 1. 先加入一筆 ALL 的 SubPiece 指全部使用相同設定
            TmpMarkSubPieces.Clear();
            MarkSubPiece msp = new MarkSubPiece();
            msp.Name = "ALL";
            msp.Grades = new List<MarkGrade>();

            MarkGrade tmpMG = new MarkGrade();
            tmpMG.GradeName = Chr(65).ToString();
            tmpMG.Score = 0;
            msp.Grades.Add(tmpMG);
            TmpMarkSubPieces.Add(msp);

            // 2. 用 Rows 和 Columns 造出所有欄位
            foreach (RoiGrade r in TmpRowsGrid)
            {
                foreach (RoiGrade c in TmpColumnsGrid)
                {
                    MarkSubPiece tmpMarkSubPiece = new MarkSubPiece();
                    tmpMarkSubPiece.Name = "ROI-" + r.Name + c.Name;
                    tmpMarkSubPiece.Grades = new List<MarkGrade>();

                    MarkGrade tmpMG2 = new MarkGrade();
                    tmpMG2.GradeName = Chr(65).ToString();
                    tmpMG2.Score = 0;
                    tmpMarkSubPiece.Grades.Add(tmpMG2);
                    TmpMarkSubPieces.Add(tmpMarkSubPiece);
                }
            }
            cboxSubPieceOfPoint_SelectedIndexChanged(cboxSubPieceOfPoint,e);
            cboxSubPieceOfGrade_SelectedIndexChanged(cboxSubPieceOfGrade,e);
        }
Example #2
0
 private void gvGrade_CellEndEdit(object sender, DataGridViewCellEventArgs e)
 {
     // Get all rows entered on each press of Enter.
     if (e.RowIndex == gvGrade.Rows.Count - 1 && !String.IsNullOrEmpty(gvGrade.Rows[e.RowIndex].Cells[1].Value.ToString()))
     {
         foreach (MarkSubPiece m in TmpMarkSubPieces)
         {
             if (m.Name == cboxSubPieceOfGrade.Text)
             {
                 MarkGrade tmp = new MarkGrade();
                 if (e.RowIndex < 4)
                 {
                     tmp.GradeName = Chr(e.RowIndex + 66).ToString();
                     tmp.Score = Convert.ToInt32(gvGrade.Rows[e.RowIndex].Cells[1].Value) + 1;
                     m.Grades.Add(tmp);
                 }
                 bsMarkSubPiece.DataSource = m.Grades;
             }
         }
         gvGrade.DataSource = typeof(MarkSubPiece);
         gvGrade.DataSource = bsMarkSubPiece.DataSource;
         gvGrade.Columns["GradeName"].ReadOnly = true;
     }
 }