標籤:datagridview style class blog c code
private void dataGridViewX1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e){ if (e.RowIndex >= 0 && e.ColumnIndex>=0) { Rectangle newRect = new Rectangle(e.CellBounds.X, e.CellBounds.Y, e.CellBounds.Width - 1, e.CellBounds.Height - 1); Pen borderPen = new Pen(dataGridViewX1.GridColor,1);//線的顏色 Brush backColorBrush = new SolidBrush(e.CellStyle.BackColor);//非選中的背景色 if (dataGridViewX1.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected) { //選中的背景色 backColorBrush = new SolidBrush(System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(199)))), ((int)(((byte)(118)))))); } e.Graphics.FillRectangle(backColorBrush, e.CellBounds);//用背景色填充儲存格 if (e.ColumnIndex!=1) { //畫上邊線 e.Graphics.DrawLine(borderPen, e.CellBounds.Left, e.CellBounds.Top - 1, e.CellBounds.Right - 1, e.CellBounds.Top - 1); //畫下邊線 e.Graphics.DrawLine(borderPen, e.CellBounds.Left, e.CellBounds.Bottom - 1, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1); // 畫右邊線 e.Graphics.DrawLine(borderPen, e.CellBounds.Right - 1, e.CellBounds.Top, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1); //e.PaintBackground(newRect,true);//畫背景 //e.Graphics.DrawRectangle(borderPen, newRect);//畫邊框 } else { if (e.RowIndex == 0) { //頭 e.Graphics.DrawLine(new Pen(Color.Red, 4), e.CellBounds.Right - 2, (e.CellBounds.Top + e.CellBounds.Bottom) / 2, e.CellBounds.Right - 2, e.CellBounds.Bottom); e.Graphics.DrawLine(new Pen(Color.Red, 3), e.CellBounds.Right - 8, (e.CellBounds.Top + e.CellBounds.Bottom) / 2, e.CellBounds.Right, (e.CellBounds.Top + e.CellBounds.Bottom) / 2); } if (e.RowIndex == 1) { //中 e.Graphics.DrawLine(new Pen(Color.Red, 4), e.CellBounds.Right - 2, e.CellBounds.Top, e.CellBounds.Right - 2, e.CellBounds.Bottom + 1); } if (e.RowIndex == 2) { //尾 e.Graphics.DrawLine(new Pen(Color.Red, 4), e.CellBounds.Right - 2, e.CellBounds.Top, e.CellBounds.Right - 2, (e.CellBounds.Top + e.CellBounds.Bottom) / 2); e.Graphics.DrawLine(new Pen(Color.Red, 3), e.CellBounds.Right - 8, (e.CellBounds.Top + e.CellBounds.Bottom) / 2, e.CellBounds.Right, (e.CellBounds.Top + e.CellBounds.Bottom) / 2); //畫下邊線 e.Graphics.DrawLine(borderPen, e.CellBounds.Left, e.CellBounds.Bottom - 1, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1); } // 畫右邊線 e.Graphics.DrawLine(borderPen, e.CellBounds.Right - 1, e.CellBounds.Top, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1); } if (e.Value != null) { e.PaintContent(newRect);//畫內容 } e.Handled = true; } }
:
本文轉載至,http://ruantnt.blog.163.com/blog/static/19052545220119185228153/