2014-10-02 88 views
1

我正在使用值爲0到100的滾動條。在我的代碼中,自動= 0,您將在下面的圖像中看到。C#根據滾動條值更改標籤的顏色

我想要完成的是,35以下的任何數字都應該將標籤(lableFS)forcolor更改爲紅色,而上面的任何數字都應該將標籤forecolor更改爲綠色。我的工作正常,但是這裏的例外應該是,如果trackbar的值是0或者即使labelFS文本設置爲「Automatic」,那麼labelFS forecolor應該是黑色的。下面是一個gif圖像,它將向您顯示我的意思,以及我目前的代碼。

非常感謝您的幫助!

Demonstration of my app

我知道它的一個簡單的問題,但我已經嘗試過許多方法,我不能似乎發現了什麼更改爲黑色停止它。

 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

使用fanSlider.Value,而不是直接檢查標籤文本 – 2014-10-02 01:43:07

+0

我就要回去,現在做到這一點,謝謝你的提示。 – user3627587 2014-10-02 01:51:14

回答

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; 
     } 
    } 
} 
+0

這是關於我的想法,我想我現在有一個心理障礙,無法找到它發生的地方。反正這個工作,並感謝您的幫助! – user3627587 2014-10-02 01:40:39

+0

@ user3627587快樂幫助... :)有時候,這也發生在我身上,非常愚蠢的小錯誤佔用了我的時間,我一直試圖找到錯誤,但我不能,當我第二天發現它時,我說該死! :P 如果這有幫助,請選擇它作爲答案,並upvote它。 – 2014-10-02 01:42:14

+0

完成並完成!再次感謝。 – user3627587 2014-10-02 02:21:04