我正在使用值为0到100的轨道栏。在我的代码中,自动= 0,您可以在下图中看到。
我想要实现的是,任何低于35的数字都应该将颜色的标签(lableFS)更改为红色,而高于此值的任何数字都应该将标签更改为绿色。我的工作正常,但是这里的例外应该是如果轨迹栏的值为0或者即使labelFS文本设置为“自动”,那么labelFS前景应该是黑色的。下面是一个gif图像,它将准确显示我的意思,以及我当前的代码。
提前感谢您的帮助!
我知道这是一个简单的问题,但是我已经尝试了很多方法,我似乎无法找到阻止它变为黑色的原因。
private void fanSlider_Scroll(object sender, EventArgs e)
{
lblFS.Text = "" + fanSlider.Value * 5;
if (lblFS.Text == "0")
{
lblFS.Text = "Automatic";
}
int value;
if (Int32.TryParse(lblFS.Text, out value))
{
if (value <= 35)
{
lblFS.ForeColor = System.Drawing.Color.Red;
}
if (value > 35)
{
lblFS.ForeColor = System.Drawing.Color.Green;
}
if (value == 0)
{
lblFS.ForeColor = System.Drawing.Color.Black;
}
}
}
答案 0 :(得分:1)
我认为这里发生的事情是,每当条形图为0时,您将其文本设置为Automatic
,然后您尝试更改其颜色检查,如果其文本为0但是因为您已经更改了它到Automatic
条件总是假的......
试试这个:
private void fanSlider_Scroll(object sender, EventArgs e)
{
lblFS.Text = "" + fanSlider.Value * 5;
if (lblFS.Text == "0")
{
lblFS.Text = "Automatic";
lblFS.ForeColor = System.Drawing.Color.Black;
}
int value;
if (Int32.TryParse(lblFS.Text, out value))
{
if (value <= 35)
{
lblFS.ForeColor = System.Drawing.Color.Red;
}
if (value > 35)
{
lblFS.ForeColor = System.Drawing.Color.Green;
}
}
}