internal int FindStringCaseInsensitive (string search, int start_index)
{
if (search.Length == 0) {
return -1;
}
// Accept from first item to after last item. i.e. all cases of (SelectedIndex+1).
if (start_index < 0 || start_index > Items.Count)
throw new ArgumentOutOfRangeException("start_index");
for (int i = 0; i < Items.Count; i++) {
int index = (i + start_index) % Items.Count;
if (String.Compare (GetItemText (Items [index]), 0, search, 0, search.Length, true) == 0)
return index;
}
return -1;
}