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

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

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

我怎么可能做到这一点?

【问题讨论】:

标签: c# .net winforms datagridview datasource


【解决方案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.

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

    【讨论】:

      猜你喜欢
      • 2017-01-17
      • 1970-01-01
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多