根据单元格样式的值更改单元格样式
本文关键字:单元格 样式 | 更新日期: 2023-09-27 17:58:14
我正在创建一个基于窗体和DataGridView
控件的应用程序。
我正在绑定数据库中的信息,现在我要做的是根据列属性的值(可以是"Urgent","Haute","Normale"
)更改其字体样式和颜色。
这是我正在使用的代码,但它不起作用,有人能告诉我下面的代码出了什么问题吗?
代码:
private void ColorizeCellsbyValue() {
DataGridViewCellStyle BoldRed = null;
BoldRed = new DataGridViewCellStyle();
BoldRed.Font = new Font("Tahoma", 9, FontStyle.Bold);
BoldRed.ForeColor = Color.Red;
DataGridViewCellStyle Red = null;
Red = new DataGridViewCellStyle();
Red.ForeColor = Color.Red;
DataGridViewCellStyle Black = null;
Black = new DataGridViewCellStyle();
Black.ForeColor = Color.Black;
string priority;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
priority = row.Cells[3].Value.ToString();
switch (priority)
{
//Change font
case "Urgent":
row.Cells[3].Style = BoldRed;
break;
case "Haute":
row.Cells[3].Style = Red;
break;
case "Normale":
row.Cells[3].Style = Black;
break;
default:
row.Cells[3].Style = Black;
break;
}
}
}
您不需要创建DataGridViewCellStyle
来设计Column
属性。试着找出我的简单例子
foreach (DataGridViewRow rows in dataGridView1.Rows)
{
if (rows.Cells[3].RowIndex % 2 == 0)
{
rows.Cells[3].Style.Font = new Font("Tahoma", 9, FontStyle.Bold);
rows.Cells[3].Style.BackColor = Color.Red;
}
else
{
rows.Cells[3].Style.Font = new Font("Arial", 9, FontStyle.Regular);
rows.Cells[3].Style.BackColor = Color.Blue;
}
}
我对你的主要问题的回答是尝试使用.EditedFormattedValue.ToString()
foreach (DataGridViewRow row in dataGridView1.Rows)
{
priority = row.Cells[3].EditedFormattedValue.ToString();
switch (priority)
{
//Change font
case "Urgent":
row.Cells[3].Style = BoldRed;
break;
case "Haute":
row.Cells[3].Style = Red;
break;
case "Normale":
row.Cells[3].Style = Black;
break;
default:
row.Cells[3].Style = Black;
break;
}
}
尝试使用
row.Cells[3].Style.BackColor = <Color>;
对于ForeColor
,使用
row.Cells[3].Style.ForeColor = <Color>;
这应该行得通。编码快乐!