单击按钮更改dataGridView单元格格式(不是单击单击格式)

时间:2016-01-15 21:55:11

标签: c# mysql winforms datagridview formatting

我正在为学校项目编写酒店预订经理。如果酒店的客人办理入住或退房,我需要知道。如果客人没有进入或删除数据库中写入的那一天,我需要更改行的颜色,以标记此预订需要注意。

我正在尝试找到解决方案来更改按钮单击时的单元格格式(现在,以后它将被安排任务)。我知道如何在将数据加载到dataGridView时更改单元格格式。

我一直在尝试这个

dataGridView1.Rows[(int)myReader["id"]].Style.BackColor = System.Drawing.Color.LightPink;

但是它说没有Style方法,我理解它是因为它是来自CellFormatting Class的方法。

我可以在CellFormatting类中编写代码,但是我不能在按钮点击时调用它,因为我不知道在发送者和e之间写什么(。

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)

1 个答案:

答案 0 :(得分:3)

您可以使用DefaultCellStyleDataGridViewRow属性为行设置一些样式,例如:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    //if some criteria
    row.DefaultCellStyle.BackColor = Color.Red;
}

您也可以在某个合适的事件中更改样式,例如,您可以查看RowPrePaint并检查行上的某些条件并更改其样式:

private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
    //you can find the row this way: this.dataGridView1.Rows[e.RowIndex]
    //then check some criteria on some cell values
    //then you can set the style for row this way:
    this.dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
}