2012-11-19 64 views
0

我有一個窗體背景圖像集和一個充當計時器輸出的標籤。該標籤位於透明表格佈局面板中。不幸的是,隨着計時器的每次打勾,背景都會明顯刷新。我怎樣才能防止這一點?不需要的背景圖片刷新

這是每次打勾調用的函數。

 private void DisplayCountry() 
    { 
     if (sel.Count == 1) 
     { 
      country_out.Text = "No countries chosen.\nPlease select some."; 
      timer_out.Visible = false; 
     } 
     else{ 
     timer_out.Text = String.Format("{0:00}", (sel[i].elapsed/60)) + ":" + String.Format("{0:00}", (sel[i].elapsed % 60)); 
     if (sel[i] == "sent") 
     { 
      country_out.Text = "No countries left."; 
      timer_out.Visible = false; 
     } 
     else 
     { 
      timer_out.Visible = true; 
      country_out.ForeColor = Color.RoyalBlue; 
      country_out.Text = sel[i].name; 
      if (sel[i].elapsed > REDTIME) 
       timer_out.ForeColor = Color.SteelBlue; 
      else 
       timer_out.ForeColor = Color.Tomato; 
     } 
     } 
    } 
+0

以下內容應嵌套在if語句中,以查看它們是否已設置爲適當的值(每次碰到它們時都會重置):timer_out.Visible = true; country_out.ForeColor = Color.RoyalBlue; country_out.Text = sel [i] .name; – JuStDaN

回答

0

設置ForeColor將刷新圖像,即使它已經是那種顏色。在設置之前檢查它是否已經是那種顏色。

+0

我在各自的if語句中嵌套除了實際的定時器字符串更新(因爲它必須每秒更新一次)之外的所有內容,註釋掉字體顏色完全改變,並且我仍然遇到同樣的問題。我會很感激任何其他的想法。 –

0

最終,我擺脫了TableLayoutPanel,犧牲了一些路線,並使用PictureBox作爲背景。 PictureBox不會帶來令人耳目一新的麻煩,我想它是爲此目的而優化的。感謝您的迴應。