【问题标题】:Assigning a color to a DataGridView Row为 DataGridView 行分配颜色
【发布时间】:2013-03-26 07:09:25
【问题描述】:

我正在尝试制作这个 Windows 应用程序,您可以在其中注册健身房会员及其每月付款。我有这个 DataGridView,它在其中显示成员的一些属性,其中之一是字段 STATUS。此字段包含单词 PAID 或 UNPAID(从某个代码分配,如果会员支付或未支付)。现在我想要做的是:如果状态字段是 UNPAID,我希望该行是 RED(背景颜色)。那可能吗 ?如果是,我该怎么做?

【问题讨论】:

标签: c# winforms


【解决方案1】:

对于称为dgvDataGridView。试试下面的方法

foreach (DataGridViewRow row in dgv.Rows)
{
    if (row.Cells["STATUS"].Value != null &&
        row.Cells["STATUS"].Value.ToString().CompareTo("UNPAID") == 0)
    {
        row.Cells["STATUS"].Style.BackColor = Color.Red;
    }
    else
    {
        row.Cells["STATUS"].Style.BackColor = Color.Green;
    }
}

这会将您的“未付费”单元格着色为红色,而将其他单元格着色为绿色。这假设您只需要可用的值。

我希望这会有所帮助。

编辑。要为整行着色,您可以使用row.DefaultCellStyle.BackColor = Color.Red 等。

【讨论】:

  • 我实际上希望整行都是红色的,但这看起来更好!谢谢 :) 干杯
【解决方案2】:

我认为您必须遍历网格视图中的行,然后比较值:

foreach (DataGridViewRow row in grid.Rows) 
     if (row.Cells["STATUS"].Value =="UNPAID") 
     {
         row.DefaultCellStyle.BackColor = Color.Red; 
     }

【讨论】:

    【解决方案3】:

    您可以将行中单元格的颜色设置为红色,如下所示:

    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        if (row.Cells["STATUS"].Value =="UNPAID") 
            row.DefaultCellStyle.BackColor = Color.Red;
    }
    

    Wich 会将 Status 的值为 unpaid 的单元格行设置为红色。

    【讨论】:

      猜你喜欢
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      相关资源
      最近更新 更多