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

DataGridView 显示行号与背景颜色

时间:2020-08-19 19:36:07      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:update   函数   style   phi   send   ati   new   code   背景   

 

实现的方式有好几种。之前使用的是下面这种在RowPostPaint事件中实现,效率不高。每次改变控件尺寸时都会执行

private void MsgGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
DataGridView gdView = sender as DataGridView;
System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(e.RowBounds.Location.X,
e.RowBounds.Location.Y,
gdView.RowHeadersWidth - 4,
e.RowBounds.Height);

TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
gdView.RowHeadersDefaultCellStyle.Font,
rectangle,
gdView.RowHeadersDefaultCellStyle.ForeColor,
TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
}

为了消除更新所带来的的闪屏问题,需要开启窗体和控件的双缓存,在窗体的构造函数中插入下面的代码。

private IGForm()
{
    //设置窗体的双缓冲
    this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
    this.UpdateStyles();

InitializeComponent();
    //
    //利用反射设置DataGridView的双缓冲
    Type dgvType = this.MsgGridView.GetType();
    PropertyInfo pi = dgvType.GetProperty("DoubleBuffered",
    BindingFlags.Instance | BindingFlags.NonPublic);
    pi.SetValue(this.MsgGridView, true, null);
}

===========================================

显示DataGridView背景颜色

//单元格样式的BackColor方法设置背景色
DataGridView.RowsDefaultCellStyle.BackColor = Color.LightSteelBlue;
//奇数行样式的BackColor方法设置
DataGridView.AlternatingRowsDefaultCellStyle.BackColor = Color.LightSteelBlue;

 

DataGridView 显示行号与背景颜色

标签:update   函数   style   phi   send   ati   new   code   背景   

原文地址:https://www.cnblogs.com/yuwentao/p/13515722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!