1,添加行号功能
添加RowPostPaint事件
//DataGridView所有单元格发生绘制的后的事件 private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { DataGridViewStyle.DgvRowPostPaint2(this.dataGridView1, e); }
要使用到的类:DataGridViewStyle
using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Drawing; namespace _009_TPS.MyClass.Class { /// <summary> /// 设置DataGridView的样式 /// </summary> public class DataGridViewStyle { /// <summary> /// 普通的样式 /// </summary> public static void DgvStyle1(DataGridView dgv) { //奇数行的背景色 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)(128)))), ((int)(((byte)(255))))); //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 = 28; } /// <summary> /// 凹凸样式 /// </summary> /// 需要手动设置this.RowTemplate.DividerHeight = 2; public static void DgvStyle2(DataGridView dgv) { dgv.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Sunken; //列标题的边框样式 dgv.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Sunken; 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))); dgv.RowTemplate.DividerHeight = 1; //禁止当前默认的视觉样式 dgv.EnableHeadersVisualStyles = false; } /// <summary> /// 参数设置 /// </summary> public static void DgvStyle3(DataGridView dgv) { //奇数行的背景色 dgv.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(26)))), ((int)(((byte)(29)))), ((int)(((byte)(48))))); dgv.AlternatingRowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(115)))), ((int)(((byte)(168)))), ((int)(((byte)(223))))); //默认的行样式 dgv.RowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(42)))), ((int)(((byte)(71))))); dgv.RowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(115)))), ((int)(((byte)(168)))), ((int)(((byte)(223))))); //dgv.RowsDefaultCellStyle.SelectionForeColor = System.Drawing.Color.Blue; //数据网格颜色 dgv.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(214)))), ((int)(((byte)(214)))), ((int)(((byte)(214))))); //列标题的宽度 dgv.ColumnHeadersHeight = 28; } /// <summary> /// 数据报表 /// </summary> public static void DgvStyle4(DataGridView dgv) { //奇数行的背景色 dgv.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(26)))), ((int)(((byte)(29)))), ((int)(((byte)(48))))); dgv.AlternatingRowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(26)))), ((int)(((byte)(29)))), ((int)(((byte)(48))))); //默认的行样式 dgv.RowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(42)))), ((int)(((byte)(71))))); dgv.RowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(42)))), ((int)(((byte)(71))))); //dgv.RowsDefaultCellStyle.SelectionForeColor = System.Drawing.Color.Blue; //数据网格颜色 //dgv.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(214)))), ((int)(((byte)(214)))), ((int)(((byte)(214))))); } /// <summary> /// 故障报警 /// </summary> /// <param name="dgv"></param> public static void DgvStyle5(DataGridView dgv) { //奇数行的背景色 dgv.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(88)))), ((int)(((byte)(124))))); dgv.AlternatingRowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(88)))), ((int)(((byte)(124))))); //默认的行样式 dgv.RowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(61)))), ((int)(((byte)(90))))); dgv.RowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(61)))), ((int)(((byte)(90))))); //dgv.RowsDefaultCellStyle.SelectionForeColor = System.Drawing.Color.Blue; //数据网格颜色 dgv.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(214)))), ((int)(((byte)(214)))), ((int)(((byte)(214))))); //列标题的宽度 dgv.ColumnHeadersHeight = 28; } /// <summary> /// 报警记录 /// </summary> public static void DgvStyle6(DataGridView dgv) { //奇数行的背景色 dgv.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(26)))), ((int)(((byte)(29)))), ((int)(((byte)(48))))); dgv.AlternatingRowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(26)))), ((int)(((byte)(29)))), ((int)(((byte)(48))))); //默认的行样式 dgv.RowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(42)))), ((int)(((byte)(71))))); dgv.RowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(42)))), ((int)(((byte)(71))))); //dgv.RowsDefaultCellStyle.SelectionForeColor = System.Drawing.Color.Blue; //数据网格颜色 //dgv.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(214)))), ((int)(((byte)(214)))), ((int)(((byte)(214))))); } /// <summary> /// 实时报警 /// </summary> /// <param name="dgv"></param> public static void DgvStyle7(DataGridView dgv) { //奇数行的背景色 dgv.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(88)))), ((int)(((byte)(124))))); dgv.AlternatingRowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(68)))), ((int)(((byte)(88)))), ((int)(((byte)(124))))); //默认的行样式 dgv.RowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(61)))), ((int)(((byte)(90))))); dgv.RowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(61)))), ((int)(((byte)(90))))); //dgv.RowsDefaultCellStyle.SelectionForeColor = System.Drawing.Color.Blue; //数据网格颜色 dgv.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(214)))), ((int)(((byte)(214)))), ((int)(((byte)(214))))); //列标题的宽度 dgv.ColumnHeadersHeight = 28; } /// <summary> /// 给DataGridView添加行号 /// </summary> /// <param name="dgv"></param> /// <param name="e"></param> public static void DgvRowPostPaint(DataGridView dgv, DataGridViewRowPostPaintEventArgs e) { try { //添加行号 SolidBrush v_SolidBrush = new SolidBrush(dgv.RowHeadersDefaultCellStyle.ForeColor); int v_LineNo = 0; v_LineNo = e.RowIndex + 1; string v_Line = v_LineNo.ToString(); e.Graphics.DrawString(v_Line, e.InheritedRowStyle.Font, v_SolidBrush, e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 5); } catch (Exception ex) { MessageBox.Show("添加行号时发生错误,错误信息:" + ex.Message, "操作失败"); } } /// <summary> /// 给DataGridView添加行号2 /// </summary> /// <param name="dgv"></param> /// <param name="e"></param> public static void DgvRowPostPaint2(DataGridView dgv, DataGridViewRowPostPaintEventArgs e) { try { //添加行号 SolidBrush v_SolidBrush = new SolidBrush(dgv.RowHeadersDefaultCellStyle.ForeColor); int v_LineNo = 0; v_LineNo = e.RowIndex + 1; string v_Line = v_LineNo.ToString(); e.Graphics.DrawString(v_Line, e.InheritedRowStyle.Font, v_SolidBrush, e.RowBounds.Location.X, e.RowBounds.Location.Y);//参数3和4是行号文本在单元格的位置 } catch (Exception ex) { MessageBox.Show("添加行号时发生错误,错误信息:" + ex.Message, "操作失败"); } } } }