void VScrollValueChanged (object o, EventArgs args) { if (top_item == vscroll.Value) return; top_item = vscroll.Value; last_item = GetLastVisibleItem (); Invalidate (); }