【发布时间】:2013-06-15 01:41:38
【问题描述】:
我有一个 C# Winforms 应用程序,我需要在其中以编程方式设置单元格字体颜色。如果满足条件,则字体应为红色。我已经确认条件检查是正确的,问题出在一行
dgv_Table.Rows[cell.RowIndex].Cells[cell.ColumnIndex].Style.ForeColor = Color.Blue;
其中“单元格”是我当前正在检查的单元格。这绝对没有任何作用。即使我把它从循环中取出并像这样检查:
dgv_Table.Rows[0].Cells[0].Style.ForeColor = Color.Blue;
它仍然什么都不做。这些代码行在 Main() 期间调用的辅助函数中。
如果我设置 DefaultCellValue,那确实会改变视图,但这不是我想要的。
private void Main_Load(object sender, EventArgs e)
{
dgv_Table.Rows[0].Cells[0].Style.ForeColor = Color.Blue;
dgv_Table.Rows[0].Cells[0].Style.BackColor = Color.Black;
foreach (DataGridViewRow row in dgv_Table.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
cell.Style.BackColor = Color.Black;
if (cell.OwningColumn.Name == "RiskName" && cell.Value.ToString() != "")
{
string wholeText = cell.Value.ToString();
int score = Convert.ToInt32(wholeText.Substring(wholeText.IndexOf("[") + 1, wholeText.IndexOf("–") - 1));
if (score > 300)
{
dgv_Table.Rows[cell.RowIndex].Cells[cell.ColumnIndex].Style.ForeColor = Color.Blue;
}
}
}
}
}
【问题讨论】:
-
您是否尝试应用此更改?什么活动?
-
当表单被加载时,它会通过并应该更改相应的单元格。
-
您是否尝试在 DataGridView 上调用
Invalidate()? -
我认为您的 datagridview 已绑定。如果是这样,您在哪里填写来源?在表单构造函数中?
-
在构造函数中,是的。
标签: c# winforms datagridview