internal bool InternalTabbedBackward()
{
// Root selektiert -> Unselekt und exit
if (focused)
{
Unfocus();
return false;
}
bool findFocused = Focused != TreeState.None;
var controls = Children.OrderByDescending(c => c.TabOrder).ToArray();
foreach (var control in controls)
{
// Solange skippen, bis das fokusierte Control dran ist
if (findFocused && control.Focused != TreeState.None)
findFocused = false;
if (!findFocused && control.InternalTabbedBackward())
return true;
}
// Noch kein Fokus gefunden -> root
if (CanFocus && TabStop && AbsoluteEnabled && AbsoluteVisible)
{
Focus();
return true;
}
return false;
}