2013-02-08 63 views
1

我正在使用計時器來更新ListBox中的值。每個替我做到以下幾點:清除和重新填充列表框時閃爍

  listBox1.Items.Clear(); 
      foreach (string thing in thingys) 
      { 
       listBox1.Items.Add(thing); 
      } 

但是,它這樣做時,列表框快速閃爍白色(空)的一瞬間,然後顯示新的數據。是否有可能停止這種閃光?這真是煩人,看到計時器的時間間隔必須相當低(〜100毫秒最多)

+0

有許多解決方案,這在網絡上。簽出雙緩衝,或擁有該列表框。例如:http://yacsharpblog.blogspot.co.uk/2008/07/listbox-flicker.html – WraithNath

回答

4

試試這個:

listBox1.BeginUpdate(); 
listBox1.Items.Clear(); 
listBox1.Items.AddRange(thingys); 
listBox1.EndUpdate(); 
+0

感謝您的快速回答,我仍然不敢相信我以前沒有找到! –

+0

@AndrewSun:不客氣。順便說一句:如果可能的話,你應該使用'AddRange'代替'foreach'循環。 –