2009-12-21 70 views
0

我有一个绑定到BindingSource的DataGridView。每行有三个字段:名称,开始日期,结束日期。在我的窗体的其他地方,我有一个DateTimePicker控件。基于数据的Datagridview行格式化

当DateTimePicker的日期是行的开始和结束日期之间,我想强调该行。但我无法弄清楚如何做到这一点。任何人都可以给我一个起点吗?

+0

见本回答http://stackoverflow.com/a/4067612/581414 – Ruskin 2016-05-19 10:41:29

+0

@Ruskin @Ruskin这个问题已经有6年的答案了,并且早于那一年,并且链接的答案没有提供任何新的东西。不过谢谢。 – Amy 2016-05-19 14:19:04

回答

0

你想突出显示所有满足条件的行吗?

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

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

1

如果您需要完整的行进行再强调,你可能想使用DefaultCellStyle属性对于每一行,要么在foreach循环或可以使用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; 
     } 
    } 
}