码迷,mamicode.com
首页 > Windows程序 > 详细

DataGridView重绘painting简单实例

时间:2014-05-23 22:38:21      阅读:954      评论:0      收藏:0      [点我收藏+]

标签:datagridview   style   class   blog   c   code   

bubuko.com,布布扣
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;

     }

 }
bubuko.com,布布扣

效果图:

bubuko.com,布布扣

本文转载至,http://ruantnt.blog.163.com/blog/static/19052545220119185228153/

DataGridView重绘painting简单实例,布布扣,bubuko.com

DataGridView重绘painting简单实例

标签:datagridview   style   class   blog   c   code   

原文地址:http://www.cnblogs.com/rinack/p/3737032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!