3

我正在尝试编写一个ifOR 语句,并else if根据应用程序检查的 RAG(红色琥珀色绿色)状态来跟进更改电子邮件主题标题。

if语句检查 groupbox 的条件BackColor。目前,该语句仅返回绿色,除非所有应用程序都是琥珀色并且主题更改为琥珀色或红色相同。

我正在寻找一个失败然后改变主题。

我放在一起的代码如下:

if ((App1.BackColor == Color.Green) | (App2.BackColor == Color.Green) | (App3.BackColor == Color.Green) | (App4.BackColor == Color.Green))
{
    oMailItem.Subject = "Application Start Of Day Status GREEN " + Date;
}

else if ((App1.BackColor == Color.Orange) | (App2.BackColor == Color.Orange) | (App3.BackColor == Color.Orange) | (App4.BackColor == Color.Orange))
{
    oMailItem.Subject = "Application Start Of Day Status AMBER " + Date;
}

else if ((App1.BackColor == Color.Red) | (App2.BackColor == Color.Red) |  (App3.BackColor == Color.Red) | (App4.BackColor == Color.Red))
{
    oMailItem.Subject = "Application Start Of Day Status Red " + Date;
}

我对使用 Visual Studio 在 C# 中进行编码相当陌生,到目前为止,我已经为我遇到的大多数问题找到了答案,但是我在这里和其他网站上都搜索过这个问题。任何帮助将不胜感激。

4

3 回答 3

5

如果这些颜色中的任何一种颜色为绿色,您所拥有的IF块将停止在将日期状态设置为绿色。因此,只有当所有项目都不是绿色且至少有一个是橙色时,它才会进入橙色部分。只有全部为红色时,它才会进入红色部分。

所以

如果您希望它以另一种方式掉落,这意味着如果 ANY 是红色的,则发出红色,您需要做两件事之一。要么颠倒 if 语句,使红色的语句位于顶部,要么去掉该ELSE部分并将它们保留为 3 个不同的IF语句。

于 2013-11-11T19:36:14.490 回答
4

我会颠倒逻辑,以便您检查它们是否是红色的,然后检查它们中的任何一个是否是琥珀色,最后如果没有红色或琥珀色,则它必须是绿色的(当然取决于您的情况)。

// If any of them are red, then code red
if ((App1.BackColor == Color.Red) | (App2.BackColor == Color.Red) |  (App3.BackColor == Color.Red) | (App4.BackColor == Color.Red))
{
    oMailItem.Subject = "Application Start Of Day Status Red " + Date;
}
// Otherwise, check if any are amber
else if ((App1.BackColor == Color.Orange) | (App2.BackColor == Color.Orange) | (App3.BackColor == Color.Orange) | (App4.BackColor == Color.Orange))
{
    oMailItem.Subject = "Application Start Of Day Status AMBER " + Date;
}
// Everything's fine so we give it a green
else
    oMailItem.Subject = "Application Start Of Day Status GREEN " + Date;
于 2013-11-11T19:35:06.530 回答
0

你并不完全清楚你想要你的代码做什么。如果你想要所有的东西都是绿色的,除非一个是琥珀色的,或者是琥珀色的,除非一个是红色的,你需要清楚地说出来。

如果任何应用程序背景颜色为绿色,则您的“主题绿色”将运行并且整个循环终止。如果您希望琥珀色或红色条件将主题从绿色更改为它们的颜色,请取出 else 语句,给出三个单独的 if 语句。这样你就会变成绿色,如果一个是琥珀色的,然后是琥珀色的,如果一个是红色的,然后是红色的。

于 2013-11-11T19:35:05.350 回答