title: Preventing a ListView from automatically horizontally scrolling when new items are added
body: <p>I'm using a <a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.listview%28v=vs.100%29.aspx" rel="nofollow">ListView</a> control in the details view with <code>VirtualMode</code> set to <code>true</code> and I'm finding that whenever a new item is added the horozontal scrollbar is set to the leftmost position.  This doesn't happen if the <code>ListView</code> is not in virtual mode. <em>Update: this also doesn't happen if you don't enable visual styles.</em></p>
  
  <p>You can see this by creating a simple <code>ListView</code> with 2 columns in details mode and adding something like the following:</p>
  
  <pre><code>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;
  }
  </code></pre>
  
  <p>Scroll the list view to the right to see this effect.</p>
  
  <p>How can I stop this from happening?  I have an application where items are continuously added to the list view and so this behaviour is very distracting.</p>