如何在 dataGridView C# 中设置行颜色? [复制]
Posted
技术标签:
【中文标题】如何在 dataGridView C# 中设置行颜色? [复制]【英文标题】:how to set rows color in dataGridView C#? [duplicate] 【发布时间】:2017-05-06 14:23:00 【问题描述】:如果状态 =“未完成”,则行颜色应为红色。我怎样才能做到这一点? 状态字段在第 8 列中。DataGridView
String query = "select * from bug order by id desc;";
String Status = null;
DataTable dt = connection.retrieve(query);
for (int i = 0; i < dataGridViewDashboard.Rows.Count; i++)
Status = dataGridViewDashboard.Rows[i].Cells[8].Value.ToString();
if (Status == "Incomplete")
dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Red;
else
dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Green;
【问题讨论】:
这个问题被问太多次了。你可以使用CellFormatting event MSDN 非常感谢 Pikoh。 非常感谢萨阿迪。 【参考方案1】:你必须控制是否是新行。
String query = "select * from bug order by id desc;";
String Status = null;
DataTable dt = connection.retrieve(query);
for (int i = 0; i < dataGridViewDashboard.Rows.Count; i++)
if (dataGridViewDashboard.Rows[i].IsNewRow)
continue;
Status = dataGridViewDashboard.Rows[i].Cells[8].Value.ToString();
if (Status == "Incomplete")
dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Red;
else
dataGridViewDashboard.Rows[i].DefaultCellStyle.BackColor = Color.Green;
【讨论】:
非常感谢大家【参考方案2】:您必须订阅 DataGridView 的 PrePaint 事件,您可以轻松地设置行的颜色。
private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
if (your control here)
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
【讨论】:
以上是关于如何在 dataGridView C# 中设置行颜色? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Pyside:在 QVBoxLayout 小部件中设置行的背景