无法更改 DataGridView 单元格的背景颜色
Unable to change the background color of DataGridView cells
我正在尝试遍历 datagridview 中的行并根据其存储的值更改单个单元格的颜色。
下面两种方法我都试过了,都没有用,也没有抛出异常。
1:
row.Cells[8].Style.BackColor = Color.Red;
2:
dgvProperties[row.Index, 8].Style.BackColor = Color.Red;
3(写完这道题又试了一次,还是不行):
dgvProperties.Rows[row.Index].Cells[8].Style.BackColor = Color.Red;
感谢任何帮助。
试试这个:
row.Cells[i].Style["background-color"] = "red";
如果不管怎样都行不通,那是你获取行的方式不对
试试这个,我猜这就是你要找的..
for(int i = 0; i < dataGridView1.Rows.Count; i++)
{
int val = Int32.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
if (val < 5)
{
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
致谢:here
这是一个 VB.NET 工作代码示例,但是,将其应用于您的 C# 应用程序将很简单:
Private Sub dgvResults_DataBindingComplete(
ByVal sender As Object,
ByVal e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs
) Handles dgvResults.DataBindingComplete
Dim daysOpenThreshold As Integer = 10 'Some trivial value for this example.
For Each r As DataGridViewRow In dgvResults.Rows
If CInt(r.Cells(2).Value) >= daysOpenThreshold Then
Dim style As New DataGridViewCellStyle
style.BackColor = Color.Red
style.ForeColor = Color.White
r.DefaultCellStyle = style
End If
Next
End Sub
我正在尝试遍历 datagridview 中的行并根据其存储的值更改单个单元格的颜色。
下面两种方法我都试过了,都没有用,也没有抛出异常。
1:
row.Cells[8].Style.BackColor = Color.Red;
2:
dgvProperties[row.Index, 8].Style.BackColor = Color.Red;
3(写完这道题又试了一次,还是不行):
dgvProperties.Rows[row.Index].Cells[8].Style.BackColor = Color.Red;
感谢任何帮助。
试试这个:
row.Cells[i].Style["background-color"] = "red";
如果不管怎样都行不通,那是你获取行的方式不对
试试这个,我猜这就是你要找的..
for(int i = 0; i < dataGridView1.Rows.Count; i++)
{
int val = Int32.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
if (val < 5)
{
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
致谢:here
这是一个 VB.NET 工作代码示例,但是,将其应用于您的 C# 应用程序将很简单:
Private Sub dgvResults_DataBindingComplete(
ByVal sender As Object,
ByVal e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs
) Handles dgvResults.DataBindingComplete
Dim daysOpenThreshold As Integer = 10 'Some trivial value for this example.
For Each r As DataGridViewRow In dgvResults.Rows
If CInt(r.Cells(2).Value) >= daysOpenThreshold Then
Dim style As New DataGridViewCellStyle
style.BackColor = Color.Red
style.ForeColor = Color.White
r.DefaultCellStyle = style
End If
Next
End Sub