如何在数据绑定后为datagridview中的每一行设置渐变色

本文关键字:一行 渐变 设置 数据绑定 datagridview | 更新日期: 2023-09-27 17:59:28

我想在数据绑定后为datagridview中的每一行设置渐变色(我的意思是在DataBoundCompleted事件中)

我看到这些文章,但它们都是用来选择一行的。我想为每一行设置梯度。

DataGridView,为每行添加唯一的渐变

如何:在Windows窗体DataGridView控件中自定义行的外观

感谢

如何在数据绑定后为datagridview中的每一行设置渐变色

您链接到的第二个示例正是您需要的。将为网格中的每一行激发DataGridView.RowPrePaint事件。

文档页上此事件的示例仅自定义呈现所选行,因为它包含以下检查。

// Determine whether the cell should be painted
// with the custom selection background.
if ((e.State & DataGridViewElementStates.Selected) ==
            DataGridViewElementStates.Selected)

删除此复选框,您将看到每一行都有自定义背景。

我不知道这是否能很好地帮助那些在谷歌搜索后登陆这里的人,我在另一个论坛上找到了一些vb代码:

using System;
using System.Windows.Forms;
using System.Drawing;
namespace CPS
{
    class gradientGrid : DataGridView
    {
        protected override void PaintBackground(System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle gridBounds)
        {
            base.PaintBackground(graphics, clipBounds, gridBounds);
            System.Drawing.Drawing2D.LinearGradientBrush b = new System.Drawing.Drawing2D.LinearGradientBrush(clipBounds, Color.CadetBlue, Color.AntiqueWhite, System.Drawing.Drawing2D.LinearGradientMode.Horizontal);
            graphics.FillRectangle(b, clipBounds);
        }
    }
}

一旦你把它构建成一个单独的类,它就会出现在你的(VS2010)工具箱中,然后你把它放在表单上。。。

此代码适用于整个数据网格视图,因此要对每一行执行此操作,可以使用RowPrePaint事件。。。