DataGrid 中行的字体颜色

发布于 2024-10-28 10:35:43 字数 207 浏览 0 评论 0原文

如何更改 DataGrid 中行的字体颜色?

颜色取决于表中的条件。

我在 stackflow 上看到了 这篇 帖子,但它仅适用于选定的线,并且无论是否选择,该线都将是另一种颜色。

How can I change the font color of a row in DataGrid?

The color depends on a condition in the table.

I saw this post here on stackflow but it works only for the selected lines, and that the line would be another color, regardless of being selected or not.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

微凉徒眸意 2024-11-04 10:35:43

您只需将事件处理程序添加到网格视图的 Paint 中即可。

如果您想做的不仅仅是颜色,我们已经采取了从 DataGridViewCell 继承并重写其 Paint 方法的路线,从 DataGridViewColumn 继承以使用该单元格,然后使用我们的网格视图中的该列。

下面是重写的方法,但事件处理程序看起来类似。

protected override void Paint(Graphics graphics,
            Rectangle clipBounds, Rectangle cellBounds,
            int rowIndex, DataGridViewElementStates cellState, object value, object
            formattedValue, string errorText, DataGridViewCellStyle cellStyle,
            DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts
            paintParts)
        {
             if ((value as WhatEverType).WhatEverField == 9)
             {
                 cellStyle.ForeColor = Color.CornflowerBlue;
             }
             base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts);
        }

You could just add an event handler to the grid view's Paint.

If you want to do more than just the colour, we have gone the route of inheriting from DataGridViewCell and overriding its Paint method, inheriting from DataGridViewColumn to use that cell, then use that column in our grid view.

Below is the overridden method, but the event hander would look similar.

protected override void Paint(Graphics graphics,
            Rectangle clipBounds, Rectangle cellBounds,
            int rowIndex, DataGridViewElementStates cellState, object value, object
            formattedValue, string errorText, DataGridViewCellStyle cellStyle,
            DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts
            paintParts)
        {
             if ((value as WhatEverType).WhatEverField == 9)
             {
                 cellStyle.ForeColor = Color.CornflowerBlue;
             }
             base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts);
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文