private bool Traverse_CanDescend(ref TraversalInfo info, ref TraverseSettings settings) { if (!settings.AllowDescend) { return(false); } if (!info.ContainsChildren) { return(false); } if (!settings.AllowDescendIfDisabled && !info.Control.Enabled) { return(false); } // FIXME: Optimize this check if (!settings.AllowDescendIfInvisible && Control.IsRecursivelyTransparent(info.Control, true)) { return(false); } return(true); }
private Control FindFocusableChildOfDefaultFocusTarget(Control defaultFocusTarget, TraverseSettings settings) { if (defaultFocusTarget.IsValidFocusTarget) { return(defaultFocusTarget); } else if ((defaultFocusTarget is IControlContainer icc) && icc.ChildrenAcceptFocus) { TraverseChildren(icc.Children, ref settings, out TraverseChildrenEnumerable enumerable); return(enumerable.FirstOrDefault().Control); }