C#/.NET 如何突出显示 DataGridView 中的某些行

Posted

技术标签:

【中文标题】C#/.NET 如何突出显示 DataGridView 中的某些行【英文标题】:C#/.NET how to highlight certain rows in DataGridView 【发布时间】:2010-11-24 08:14:40 【问题描述】:

我有一个 DataGridView,通过将其 DataSource 设置为 DataBinding 来填充。

现在我希望 DataGridView 中的某些行根据行本身的某些值具有不同的 Backgroundcolor。

我怎么可能做到这一点?

【问题讨论】:

我认为您可以从这个问题中找到一些有用的信息。 ***.com/questions/1078782/… 【参考方案1】:

在 datagridview 的 CellFormatting 事件处理程序中,您可以为所需的任何行设置默认背景色。

private void MyDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    

        if (e.RowIndex == rowIndexToHighlight)
        
            e.CellStyle.BackColor = Color.Green;
        

    

【讨论】:

-1 因为这个例子的性能影响真的很差。如果使用数据绑定,那么数据网格将需要维护重复的行记录。 Psasik 的示例避免了取消共享行。 @Kleinux:这是一个关于维护重复行记录的有趣评论。你能解释一下为什么会这样吗?谢谢 如果您查看文档,您会提到共享行与非共享行。上面的代码强制网格视图为数据源中的每一行创建实际的 DataGridViewRow 记录。这些行在单元格值的意义上不是重复的,它仍然可以为此读取数据源,但由于现在需要的样式信息,否则它们不必存在。希望我的评论更清楚一点。这是一个很好的教程msdn.microsoft.com/en-us/library/ha5xt0d9.aspx 很公平,我改变了我的例子。【参考方案2】:

您可以使用 RowPrePaint 更改整行的颜色或样式

【讨论】:

【参考方案3】:

有一个很好的例子here.

这个概念是您从网格订阅事件。当一个单元格被填充时,会触发一个事件,并根据值设置单元格的格式等。

【讨论】:

以上是关于C#/.NET 如何突出显示 DataGridView 中的某些行的主要内容,如果未能解决你的问题,请参考以下文章

如何突出显示月历控件中的日期?

如何使用 asp.net 在 gridview 中突出显示搜索结果?

目标 C:如何突出显示 tableView 单元格并在重新加载表格时保持突出显示?

在 asp.net 中突出显示新记录

使用 jQuery 突出显示选定的 ASP.NET DataGrid 行

如何在C ++中突出显示整个单词?