Not sure I 100% understand what you are trying to achieve.
A UI program is event driven, it will sit there quite happily forever waiting for some user interaction, it is already effectively running in an endless loop, that's why you don't need StartMessageLoop.
Button presses generate an event, in that button event handler you can do whatever you want, load a new mainform change the layout etc, when you exit that handler, the program goes back to waiting for something else to happen.