private void timer1_Tick(object sender, System.EventArgs e)
{
if(!this.boolIdle)
{
this.boolIdle=true;
this.listView1.SuspendLayout();
this.listView1.Items.Clear();
for(int i=0;i<20;i++)
{
ListViewItem lvi=this.listView1.Items.Add("测试");
lvi.SubItems.Add("测试"); }
this.listView1.EnsureVisible(19);//这样仅仅保持在最后一个
this.listView1.ResumeLayout();
this.boolIdle=false;
}
}timer刷新listview中可以拖动垂直滚动条 
垂直滚动条的位置不随timer刷新listview而变动(ListViewItem的数目是固定的)

解决方案 »

  1.   

    to 垂直滚动条的位置不随timer刷新listview而变动(ListViewItem的数目是固定的)这其实不是你的语句有问题,而是前面作了清空操作,然后又添加了记录。如果你的条数是固定的话,为什么不直接在上面修改数据值,这样不就简单避免了滚动条的滚动,以及出现的闪屏现象。
      

  2.   

    有想过这样做 不过这个修改的速率跟添加的比起来不知道怎么样 
    有找到用API给listview发送消息的