int GetLastVisibleItem ()
{
int top_y = Height;
for (int i = top_item; i < owner.auto_complete_matches.Count; i++) {
int pos = i - top_item; // relative to visible area
if ((pos * item_height) + item_height >= top_y)
return i;
}
return owner.auto_complete_matches.Count - 1;
}