Thanks for reporting this, it was indeed a bug.
Container controls took a snapshot of their existing children before firing their own Opening event. Consequently, controls added from that handler were not included in the opening pass, so neither the newly added ContainerControl nor its nested controls received Opening.
This has now been fixed: https://feedback.objo.dev/bug/1111
Controls added during a container’s Opening handler receive their own Opening events before the window becomes visible. Nested controls still open in child-before-parent order, and existing controls are tracked so their events are not fired twice.
The fix applies consistently to ScrollBox, ContainerControl, GroupBox, TabPanel, and PagePanel.