ScrollWidgetIntoView not working in C++, but work in the Blueprints

I have a ScrollBox and three Overlay childs.

In the C++

ScrollBox = Cast<UScrollBox>(Machine_W->GetWidgetFromName(TEXT("MScrollBox")));
UOverlay* ChildOverlay = Cast<UOverlay>(ScrollBox->GetChildAt(1));
if (ChildOverlay) UE_LOG(LogTemp, Warning, TEXT("CUR OVERLAY %s"), *ChildOverlay->GetName())
else UE_LOG(LogTemp, Warning, TEXT("Overlay NOT EXIST"));
ScrollBox->ScrollWidgetIntoView(ChildOverlay, true, EDescendantScrollDestination::TopOrLeft);

Overlay is Valid, but function not working.
But in the blueprints all ok:

Solved:
Event Constuct in the blueprint and the Begin Play C++ not the same.
Begin Play fired before widget initialized. And GetCachedWidget return Null.