WinForm自定义DataGrivew表格控件样式—以及添加行号

WinForm自定义DataGrivew表格控件样式—以及添加行号

封装样式类

 public class DataGrivewStyle
 {

     //行号
     /// <summary>
     /// 添加行号
     /// datagridview 添加行号的事件里面 调用次方法, PostPaint在每次绘制行之后触发
     /// </summary>
     /// <param name="sender">datagrivew</param>
     /// <param name="e">事件对象</param>
     public static void DgvRowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
     {
         try
         {
             DataGridView grid = (DataGridView)sender;
             //创建笔刷 grid.RowHeadersDefaultCellStyle.ForeColor 行单元格默认的字体颜色
             SolidBrush brush = new SolidBrush(grid.RowHeadersDefaultCellStyle.ForeColor);

             //e.RowIndex 行的索引
             int index = e.RowIndex + 1;

             //绘制行号
             // e.Graphics 绘制对象
             //DrawString 绘制字符串
             //e.InheritedRowStyle.Font :继承过来的字体
             // e.RowBounds.X + 18  绘制的x轴
             e.Graphics.DrawString(index.ToString(), e.InheritedRowStyle.Font, brush, e.RowBounds.X + 18, e.RowBounds.Y + 10);

         }
         catch (Exception ex)
         {

             MessageBox.Show("添加行号的时候出现错误,网络出现问题");
         }

     }


     //样式1
     /// <summary>
     /// 调用方法  传递控件即可 
     /// </summary>
     /// <param name="dgv"></param>
     public static void DGVStyle1(DataGridView dgv)
     {

         // 没有数据时候的背景颜色
         //ButtonFace 按钮的颜色
         dgv.BackgroundColor = System.Drawing.SystemColors.ButtonFace;

         //有数据的背景颜色
         dgv.RowsDefaultCellStyle.BackColor = System.Drawing.Color.Black;

         //数据网格的颜色
         dgv.GridColor = System.Drawing.Color.Red;

         //设置边框
         //DataGridViewHeaderBorderStyle.Single 单边框
         //设置列标题边框
         dgv.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;

         //设置行的边框
         dgv.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;

         //禁止使用默认的样式
         dgv.EnableHeadersVisualStyles = false;

         // 列的高度
         dgv.ColumnHeadersHeight = 35;

         // 列的标题的颜色
         dgv.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.Color.Blue;


         //列标题背景颜色
         dgv.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb((int)(byte)(255), (int)(byte)(255), (int)(byte)(128));

         //所有字体添加一个颜色
         for (int i = 0; i < dgv.Rows.Count; i++)
         {
             dgv.Rows[i].DefaultCellStyle.ForeColor = Color.Yellow;
         }

     }



     //样式2
     /// <summary>
     /// 普通样式
     /// 在需要使用该样式的地方,new 这个类对象,调用该方法,把 DataGridView 传递进来即可。
     /// </summary>
     public static void DgvStyle2(DataGridView dgv)
     {
         // 奇数行的背景色byte 范围是0-255,所以转换是安全的
         dgv.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)((byte)(128))), ((int)((byte)(255))), ((int)((byte)(255))));
         dgv.AlternatingRowsDefaultCellStyle.SelectionForeColor = System.Drawing.Color.Blue;
         dgv.AlternatingRowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)((byte)(255))), ((int)((byte)(0))), ((int)((byte)(0))));
         dgv.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
         // 默认的行样式
         dgv.RowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)((byte)(255))), ((int)((byte)(255))), ((int)((byte)(192))));
         dgv.RowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)((byte)(255))), ((int)((byte)(128))), ((int)((byte)(255))));
         dgv.RowsDefaultCellStyle.SelectionForeColor = System.Drawing.Color.Blue;
         // 数据网格颜色
         dgv.GridColor = System.Drawing.Color.FromArgb(((int)((byte)(0))), ((int)((byte)(0))), ((int)((byte)(192))));
         // 列标题的宽度
         dgv.ColumnHeadersHeight = 30;
     }

     //样式3
     /// <summary>
     /// 凹凸样式:需要手动设置 this.RowTemplate.DividerHeight = 2;
     /// 在需要使用该样式的地方,new 这个类对象,调用该方法,把 DataGridView 传递进来即可。
     /// </summary>
     public static void DgvStyle3(DataGridView dgv)
     {
         // 奇数行的背景颜色
         // dgv.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)((byte)(128))), ((int)((byte)(255))), ((int)((byte)(255))));
         // 单元格边框样式
         dgv.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Sunken;
         // 列标题的边框样式
         dgv.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Sunken;
         // System.Drawing.GraphicsUnit.Point 用于指定图形和文本的度量单位。
         // Pixel,      // 像素
         //Point,      // 打印机点 (1/72 英寸)
         //Inch,       // 英寸
         //Document,   // 文档单位 (1/300 英寸)
         //Millimeter  // 毫米

         //((byte)(134))
         // 常见字符集值:
         //0: ANSI_CHARSET
         //1: DEFAULT_CHARSET
         //2: SYMBOL_CHARSE
         //128: SHIFTJIS_CHARSET(日文)
         //129: HANGEUL_CHARSET(韩文
         //134: GB2312_CHARSET(简体中文)
         //136: CHINESEBIG5_CHARSET(繁体中文)
         dgv.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
         dgv.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)((byte)(128))), ((int)((byte)(255))), ((int)((byte)(255))));
         dgv.ColumnHeadersHeight = 28;
         // 行的边框样式
         dgv.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Sunken;
         dgv.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
         // this.DefaultCellStyle.ForeColor = System.Drawing.Color.Black;
         // this.DefaultCellStyle.BackColor = System.Drawing.SystemColors.ButtonFace;
         dgv.RowTemplate.DividerHeight = 1;
         // 禁止当前默认的视觉样式
         dgv.EnableHeadersVisualStyles = false;

         // 自动调整列宽
         // this.AutoResizeColumns();
     }




 }

使用:

设置行号
//设置行号 需要绑定postPaint 重绘行的方法
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
    DataGrivewStyle.DgvRowPostPaint(sender, e);//调用DataGrivewStyle类里面的重新绘制行号的方法
}
设置样式
//设置样式
DataGrivewStyle.DgvStyle2(dataGridView1); //调用DataGrivewStyle类里面的样式2的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Csharp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值