title: Flickering in listview with ownerdraw and virtualmode
body: <p>I'm using listview control with the following parameters set:</p>
  
  <pre><code>        this.listView1.BackColor = System.Drawing.Color.Gainsboro;
          this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
          this.columnHeader1,
          this.columnHeader2});
          this.listView1.FullRowSelect = true;
          this.listView1.HideSelection = false;
          this.listView1.Location = new System.Drawing.Point(67, 192);
          this.listView1.Name = "listView1";
          this.listView1.Size = new System.Drawing.Size(438, 236);
          this.listView1.TabIndex = 0;
          this.listView1.UseCompatibleStateImageBehavior = false;
          this.listView1.View = System.Windows.Forms.View.Details;
          this.listView1.DrawColumnHeader += new System.Windows.Forms.DrawListViewColumnHeaderEventHandler(this.listView1_DrawColumnHeader);
          this.listView1.RetrieveVirtualItem += new System.Windows.Forms.RetrieveVirtualItemEventHandler(this.listView1_RetrieveVirtualItem);
          this.listView1.DrawSubItem += new System.Windows.Forms.DrawListViewSubItemEventHandler(this.listView1_DrawSubItem);
  </code></pre>
  
  <p>Two rows are provided with some random text. Ownerdrawing is simple:</p>
  
  <pre><code>    private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
      {
          if (e.ColumnIndex == 0)
          {
              e.DrawBackground();
              e.DrawText();                
          }
          else
              e.DrawDefault = true;
          //Console.WriteLine("{0}\t\tBounds:{1}\tItem:{2}\tSubitem:{3}", (i++).ToString(), e.Bounds.ToString(), e.Item, e.SubItem);
      }
  </code></pre>
  
  <p>the problem is: when i hover mouse on listview's content, i get flickering of first column. Debugging shows that DrawSubItem is called constantly while the mouse is over it.</p>
  
  <p>Is it bug? How to avoid this behavour?</p>