如何更改datagridview的行颜色,其中单元格值是c#中的某个值
本文关键字:单元格 datagridview 何更改 颜色 | 更新日期: 2023-09-27 18:27:25
我正在使用win应用程序,使用c#进行编码
我有一个数据网格视图,它正在从微软sql server数据库加载数据。我的需要是我想在datagridview单元格值小于35的地方设置行颜色
我的想法如下。
//this is just my Idea,Not correct code,so please add code
private void colorchange()
{
if (dataGridView4.cellvaue <= 35)
{
dataGridView4.row_fore_colour = red;
}
}
datagridview单元格值采用文本格式。所以请不要忘记将文本转换为整数值,然后给我一个问题的解决方案(我不知道datagridview单元格值的转换)
void dataGridView4_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (this.dataGridView4.Rows[e.RowIndex].Cells["cellToCheck"].Value != null)
{
if ((int)this.dataGridView4.Rows[e.RowIndex].Cells["cellToCheck"].Value <=35)
{
this.dataGridView4.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
}
}
}
我在我想要的代码项目中找到了这个。。
认为这可能是实现目标的方法:
for (int i = 0; i < dataGridView4.Rows.Count; i++)
{
for (int o = 0; o < dataGridView4.Rows[i].Cells.Count;o++ )
{
int num1;
if(dataGridView4.Rows[i].Cells[o].Value != null)
{
string text1 = dataGridView4.Rows[i].Cells[o].Value.toString;
bool res = int.TryParse(text1, out num1);
if (res == true)
{
if(Convert.ToInt32(dataGridView4.Rows[i].Cells[o].Value) < 35)
{
dataGridView4.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.Red;
}
}
}
}
}
尝试这可能是工作
void dataGridView4_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
for (int i = 0; i < dataGridView4.Rows.Count; i++)
{
if (dataGridView4.Rows[i].Cells["cellname"].Value != null)
{
if ((int)dataGridView4.Rows[i].Cells["cellname"].Value <=35)
{
dataGridView4.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
}
}
这将只检查一列"cellname",如果您想检查所有列,则添加一个额外的for循环。。
您可以在您的条件下使用单元格编号。我使用单元格编号解决了问题,然后使用if条件获取单元格值。您可以使用此代码。
void dataGridView4_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
for (int i = 0; i < dataGridView4.Rows.Count; i++)
{
if (e.ColumnIndex == 9)
{
if (dataGridView2.CurrentCell != null && dataGridView2.CurrentCell.Value != null && dataGridView2.CurrentCell.Value <=35)
{
dataGridView4.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
}
}