如何在datagridview中设置指定行的背景颜色?

Posted

技术标签:

【中文标题】如何在datagridview中设置指定行的背景颜色?【英文标题】:How to set the background color for specified row in datagridview? 【发布时间】:2015-02-15 23:18:21 【问题描述】:

我想为 datagridview 中的指定行设置背景颜色.. 我的需要是我有一个 for 循环 (i=0;i<10;i++) 。在这个 for 循环中我编写逻辑 作为

if(i=1)

//Want to Set Color For This Specified Row..
dataGridView1.SelectedRows[1].DefaultCellStyle.SelectionBackColor = Color.Yellow;


if(i=1)

//Want to Set Color For This Specified Row..
dataGridView1.SelectedRows[2].DefaultCellStyle.SelectionBackColor = Color.Blue;



if(i=1)

//Want to Set Color For This Specified Row..
dataGridView1.SelectedRows[3].DefaultCellStyle.SelectionBackColor = Color.Red;

但我没有得到预期的 o/p 。我希望你理解我的需要。请帮帮我。

【问题讨论】:

***.com/a/2193018/815938 【参考方案1】:

您可以按如下方式使用 DataGridview 的 SelectedRows 属性,而不是使用该属性

dataGridView1.Rows[1].DefaultCellStyle.ForeColor = Color.Red;

因为SelectedRows 属性将在仅由用户选择行时返回行,如果没有选择行,那么您的代码将抛出异常。

编辑:

对于您的疑问,这里提供一个示例代码,希望它对您有所帮助。

for (int i = 0; i < 10; i++)
 
   if (dataGridView1.Rows.Count > i)
    
      if (i == 1)
         dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
      else if (i == 2)
         dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Blue;
      else
         dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Green;
     
 

【讨论】:

【参考方案2】:

您可以处理数据网格的不同事件并设置单元格样式

这是来自related question的示例

private void dgvStatus_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)

    if (e.ColumnIndex != color.Index)
        return;

    e.CellStyle.BackColor = Color.Red;

【讨论】:

以上是关于如何在datagridview中设置指定行的背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

在 Adob​​e Flex 中设置数据网格行的背景颜色

如何在 SwiftUI 列表中设置选定的行背景颜色?

如何在 dataGridView C# 中设置行颜色? [复制]

在 datagridview 内的组合框中设置值

如何更改DataGridView行的背景颜色并在悬停时撤消?

如何在 GridLayoutManager 中设置项目行的高度