I'm trying to convert my VB6 app to VB.NET and having loads of difficulty getting some forms to show correctly. I have seen similiar type of posts as mine, but nothing has worked for me

I have an MDI container form(frmICD) and a Sub Main where the app first starts up. When I first run the app, frmlogon gets called from Sub Main to get the username and password. Once the user hits ok, code in frmlogon gets the next form (frmmainmenu) ready. I have verified via debugger that frmmainmenu is visible. I call frmlogon.hide, the app returns to the Sub Main and the program terminates. Is there a reason this is happening or What am I missing
I tried to add this line of code in frmlogon: 'System.Windows.Forms.Application.Run(New frmMainMenu)' but I receive this error message: 'It is invalid to start a second message loop on a single thread'. I'm assuming I get this because frmmainmenu is already visible? I don't know. If anyone can help or can tell me somewhere that has good examples of working with MDI forms and childs, it would be greatly appreciated
Joe