【发布时间】:2012-04-08 03:41:52
【问题描述】:
我在详细信息视图中使用ListView 控件,将VirtualMode 设置为true,我发现每当添加新项目时,水平滚动条都会设置为最左边的位置。如果ListView 不在虚拟模式下,则不会发生这种情况。 更新:如果您不启用视觉样式,这也不会发生。
您可以通过在详细信息模式下创建一个包含 2 列的简单 ListView 并添加类似以下内容来看到这一点:
Timer timer = new Timer();
public Form1()
{
this.InitializeComponent();
this.listView1.VirtualMode = true;
this.listView1.RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(listView1_RetrieveVirtualItem);
this.listView1.VirtualListSize = 10;
timer.Interval = 250;
timer.Tick += new EventHandler(t_Tick);
timer.Start();
}
void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
e.Item = new ListViewItem(new string[] {"Test", ""});
}
void t_Tick(object sender, EventArgs e)
{
this.listView1.VirtualListSize += 1;
}
向右滚动列表视图以查看此效果。
我怎样才能阻止这种情况发生?我有一个应用程序,其中项目不断添加到列表视图中,因此这种行为非常分散注意力。
【问题讨论】:
标签: c# .net winforms listview scroll