That is the way it’s designed. Control Opening events fire first. Window Opening fires after all the controls are open.
It is best to only put code in a control Opening event that refers to that control itself, no others. Any code that refers to multiple controls goes in the window Opening event, where you know they all exist.