protected virtual void HandlePrePaint()
{
// When we get a WM_PAINT msg, remember the rectangle that is being updated.
// We can't get this information later, since the BeginPaint call wipes it out.
this.lastUpdateRectangle = NativeMethods.GetUpdateRect(this);
//// When the list is empty, we want to handle the drawing of the control by ourselves.
//// Unfortunately, there is no easy way to tell our superclass that we want to do this.
//// So we resort to guile and deception. We validate the list area of the control, which
//// effectively tells our superclass that this area does not need to be painted.
//// Our superclass will then not paint the control, leaving us free to do so ourselves.
//// Without doing this trickery, the superclass will draw the list as empty,
//// and then moments later, we will draw the empty list msg, giving a nasty flicker
//if (this.GetItemCount() == 0 && this.HasEmptyListMsg)
// NativeMethods.ValidateRect(this, this.ClientRectangle);
}