2013-02-08 35 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'循环。 –