private static Control FindFlatBackward(Control container, Control start) {
Control found;
int index;
int end;
bool hit;
found = null;
end = container.child_controls.Count;
hit = false;
if (start != null) {
index = start.tab_index;
} else {
index = int.MaxValue;
}
for (int i = end - 1; i >= 0; i--) {
if (start == container.child_controls[i]) {
hit = true;
continue;
}
if (found == null || found.tab_index < container.child_controls[i].tab_index) {
if (container.child_controls[i].tab_index < index || (hit && container.child_controls[i].tab_index == index))
found = container.child_controls[i];
}
}
return found;
}