【问题标题】:C# If statement based on conditional Gridview cell color基于条件 Gridview 单元格颜色的 C# If 语句
【发布时间】:2019-03-01 06:27:04
【问题描述】:

抱歉,如果这是微不足道的,但我正在尝试从 VB 切换到 C#。我正在尝试根据另一个单元格的背景颜色更改 Datagridview 单元格的背景颜色。例如,

如果 row(0), cell(0) 为“红色”,则将 row(1), cell(1) 设为“绿色”。

在 VB(有效)中,我使用:

If GridView1.Rows(0).Cells(0).BackColor = Drawing.Color.Red Then
GridView1.Rows(4).Cells(3).BackColor = Drawing.Color.Red
End If

但在 C# 中:

if (GridView1.Rows[0].Cells[0].BackColor = System.Drawing.Color.Red)
{
GridView1.Rows[4].Cells[3].BackColor = System.Drawing.Color.Red;
}
else
{
}

我收到了编译时错误

无法将类型“system.drawing.color”隐式转换为“bool”。一世 明白红色不是真/假,但我不明白为什么 被解释为布尔变量。

任何帮助将不胜感激!

谢谢:)

【问题讨论】:

  • =更改为==if (GridView1.Rows[0].Cells[0].BackColor == System.Drawing.Color.Red)
  • == 表示相等,= 表示赋值。
  • 我同意 == 缺失,因为在 C# 中,你不能只用一个 = 来均衡,你也可以使用 BackColor.Equals()... 代替。当您将 C# 迁移到 VB 时,我会建议您不时使用此站点,反之亦然。 converter.telerik.com
  • 非常感谢和最良好的祝愿。

标签: c# if-statement datagridview background-color


【解决方案1】:

在 VB 中,单个等号用于“赋值”

Dim i as int = 10

对于“比较”

If GridView1.Rows(0).Cells(0).BackColor = Drawing.Color.Red Then

在 C# 中,单个等号仅用于“赋值”:

var i = 10;

如果要进行“比较”,则需要两个等号(==):

if (GridView1.Rows[0].Cells[0].BackColor == System.Drawing.Color.Red)

【讨论】:

  • 顺便说一句。任何人都可以对某个问题或某个问题的答案投票(赞成或反对)。它往往表明问题或答案的价值(例如,我只是在寻找某些东西,我发现有人问了我感兴趣的相同问题,而答案正是我想要的——所以我给他们投票了两个都上)。提出问题的人可能会发现其中一个答案就是他想要的。发生这种情况时,原始发布者可以接受答案。我有点惊讶 2 人投票赞成,但说“谢谢”的正确方式是接受它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 2012-11-02
  • 1970-01-01
  • 2015-05-27
  • 2013-04-17
  • 1970-01-01
相关资源
最近更新 更多