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 单元格并在重新加载表格时保持突出显示?