【问题标题】:Datagridview row formatting based on data基于数据的Datagridview行格式化
【发布时间】:2009-12-21 18:16:11
【问题描述】:

我有一个绑定到 BindingSource 的 DataGridView。每行包含三个字段:名称、开始日期、结束日期。在我的表单的其他地方,我有一个 DateTimePicker 控件。

当 DateTimePicker 的日期介于一行的开始日期和结束日期之间时,我想突出显示该行。但我无法弄清楚如何做到这一点。谁能给我一个起点?

【问题讨论】:

  • @Ruskin 这个问题已经有 6 年的答案了,并且比该问题早了一年,并且链接的答案没有提供任何新内容。不过还是谢谢。

标签: c# winforms datagridview


【解决方案1】:

如果您需要突出显示整个行,那么您可能希望在 ForEach 循环中为每一行使用 DefaultCellStyle 属性,或者您可以使用 CellFormatting 事件,如下所示:

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Error")
    {
        if (e.Value != null && e.Value.ToString() == "1")
        {
             dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Red;
        }
    }
}

【讨论】:

    【解决方案2】:

    是否要突出显示所有满足条件的行?

    您可以逐行查看每次DTP值更改时哪些行满足条件。

    然后,对于这些行中的每个单元格,更改 DataGridViewCell.Style 以突出显示这些行。对于不满足约束的行中的每个单元格,将 DataGridViewCell.Style 设置为默认值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-26
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多