gpt4 book ai didi

c# - 带有 If 语句的 foreach 循环中的字体样式不正确

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:03 24 4
gpt4 key购买 nike

我可能遗漏了一些非常简单的东西,但我无法让它正常工作。

我正在填充 Datagridview。然后我有一个 Databindingcomplete 事件来遍历行并根据特定条件为它们提供颜色和字体。

这是通过以下代码完成的:

foreach (DataGridViewRow r in dataGridView1.Rows)
{
if ((r.Cells["referrer"].Value.ToString().Contains("DBS")) & (r.Cells["priority"].Value.ToString().Equals("1")))
{
r.DefaultCellStyle = DBS;
r.DefaultCellStyle.Font = new Font("Arial", 9, FontStyle.Bold);
}

else if ((r.Cells["referrer"].Value.ToString().Contains("DBS")) & (r.Cells["priority"].Value.ToString().Equals("0")))
{
r.DefaultCellStyle = DBS;
r.DefaultCellStyle.Font = new Font("Arial", 9, FontStyle.Regular);
}

else if ((r.Cells["referrer"].Value.ToString().Contains("agenda")) & (r.Cells["priority"].Value.ToString().Equals("0")))
{
r.DefaultCellStyle = agenda;
r.DefaultCellStyle.Font = new Font("Arial", 9, FontStyle.Regular);
}

else if ((r.Cells["referrer"].Value.ToString().Contains("agenda")) & (r.Cells["priority"].Value.ToString().Equals("1")))
{
r.DefaultCellStyle = agenda;
r.DefaultCellStyle.Font = new Font("Arial", 9, FontStyle.Bold);
}

else if ((r.Cells["referrer"].Value.ToString().Contains("sms")) & (r.Cells["priority"].Value.ToString().Equals("1")))
{
r.DefaultCellStyle = sms;
r.DefaultCellStyle.Font = new Font("Arial", 9, FontStyle.Bold);
}

else if ((r.Cells["referrer"].Value.ToString().Contains("sms")) & (r.Cells["priority"].Value.ToString().Equals("0")))
{
r.DefaultCellStyle = sms;
r.DefaultCellStyle.Font = new Font("Arial", 9, FontStyle.Regular);
}

else if ((r.Cells["referrer"].Value.ToString().Contains("remoteLogin")) & (r.Cells["priority"].Value.ToString().Equals("1")))
{
r.DefaultCellStyle = remoteLogin;
r.DefaultCellStyle.Font = new Font("Arial", 9, FontStyle.Bold);
}

else if ((r.Cells["referrer"].Value.ToString().Contains("remoteLogin")) & (r.Cells["priority"].Value.ToString().Equals("0")))
{
r.DefaultCellStyle = remoteLogin;
r.DefaultCellStyle.Font = new Font("Arial", 9, FontStyle.Regular);
}
}

现在这是工作。 DefaultCellStyle 的第一行是行的颜色,然后第二行是字体。

一切正常,颜色很好,大胆的作品,正常的作品,除了一件事。

如果我有 2 行:

A)优先级为 1 的议程

B)优先级为0的议程

它会经过第一个,调整好颜色,使其变粗。但是第二个也将是大胆的。如果我更改它们,使第一个的优先级为 0,则两者都将是常规的。

我可以有所有类型的事件,所有事件都是粗体或规则的,都有正确的颜色设置。但是当我有第二个相同类型(DBS、议程、remoteLogin 或短信)时,第二个等等将具有与第一个相同的字体。

所以这批将执行以下操作:

[DBS-1] --> Correct color, and bold (correct)

[agenda - 0] --> Correct color and regular (correct)

[sms - 1] --> 颜色正确,加粗(correct)

[remoteLogin - 0] --> Correct color and regular (correct)

[DBS - 0] --> 正确的颜色和粗体(不正确的字体!)

[agenda - 1] --> 正确的颜色和规则(不正确的字体!)

我希望我的解释有意义。也许我没有看到什么或者我想要一些愚蠢的东西。也许有人可以告诉我哪里出了问题。代码现在可能不是最好的,因为我已经做了很多调整试图让它工作。

编辑:我只是注意到它确实正确地执行了 foreach,但是当它遇到第二个相同类型的字体时,它也会更改之前字体的字体。也许我可以解决它。

提前致谢!迈克

最佳答案

我猜你的 & 应该是 &&

关于c# - 带有 If 语句的 foreach 循环中的字体样式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8432164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com