不能在datagridview中改变单元格的颜色

本文关键字:单元格 颜色 改变 datagridview 不能 | 更新日期: 2023-09-27 18:07:13

我有一个简单的表单与datagridview显示值从ms sql表。我想要的值超过400列的名称"dc"变成红色(FONT in red)。我试了一遍又一遍,但就是做不到。下面是代码:

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
    int cellval = Convert.ToInt32(row.Cells["dc"].Value);
    if (cellval > 400)
    {
        row.DefaultCellStyle.BackColor = Color.Red;
        MessageBox.Show("O valor da célula é " + cellval, "WLic2010", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
}
最有趣的是,MessageBox的东西真的证明了它理解我的请求,因为它只弹出值超过400。

请帮助! !

不能在datagridview中改变单元格的颜色

您正在设置行的样式,而不是单元格(DataGridViewCell)的样式。

row.Cells["dc"].Style.BackColor = Color.Red;

试试这个:

使用"Style"属性->

DataGridView1.Item(ColumnIndex, RowIndex).Style.BackColor = Color
DataGridView1.Item(ColumnIndex, RowIndex).Style.ForeColor = Color

DataGridView1.CurrentCell.Style.BackColor = Color
DataGridView1.CurrentCell.Style.ForeColor = Color

希望这能回答你的问题

您是否尝试使用CellFormatting事件,在那里您可以检查当前单元格的值,然后更改BackColor

要交换字体颜色,您需要更改ForeColor属性,尝试如下:

row.Cells["dc"].Style.ForeColor = Color.Red;

如果使用DataGridViewCell.Style,这应该可以解决。