1. 程式人生 > >C# DataGridView單元格畫斜線

C# DataGridView單元格畫斜線

功能要求:不符合條件的單元格使用斜線形式表現出來。

1、定義兩個變數,一個是儲存單元格位置的陣列,一個是Graphics 變數

 Graphics gdi; 
 List<DataGridViewCell> pathList = new List<DataGridViewCell>();

2、將要劃斜線的單元格都儲存起來(注意在新增完單元格後需要新增(this.dataGridView1.focus();))

  pathList.Add(dataGridView1.Rows[i].Cells[inde]);

3、寫dataGridview方法中的dataGridView1_CellPainting()方法

   var realList = pathList.Where(a => a.RowIndex >= 0 && a.ColumnIndex >= 0);
   foreach (var obj in realList)
      {
           gdi = e.Graphics; //得到DataGridView的畫布
            var size = obj.Size; //單元格大小
             Rectangle rec = this.dataGridView1.GetCellDisplayRectangle(obj.ColumnIndex, obj.RowIndex, false
); //得到單元格對應的座標,長寬 //在畫布上開畫,座標就是要畫的單元格的座標,而Height/2是畫到單元格的中間,長度就是單元格的長度。 gdi.DrawLine(new Pen(Color.LightGray), new Point(rec.X, rec.Y ), new Point(rec.X + rec.Width, rec.Y + rec.Height)); }