RE:crear menu en tiempo de ejecucion
Crearlo desde cero, lo veo medio complicado. Una forma Facil es crear un menu "artificial" algo como
MnuPrincipal1, con nombre "Uno",
MnuSubMenu1, con nombre "Submenu1", con index 0
mnuSubSubMenu1, con nombre "SUBsubmenu1", con index 0, este tiene tres niveles pero puedes agregar mas
MnuPrincipal2, con nombre "Dos"
MnuSubMenu2, con nombre "Submenu2", con index 0
mnuSubSubMenu2, con nombre "SUBsubmenu2", con index 0, este tiene tres niveles
MnuPrincipal3, con nombre "Tres"
MnuSubMenu3, con nombre "Submenu1", con index 0
mnuSubSubMenu3, con nombre "SUBsubmenu", con index 0
Y haci sucecivamente, la idea es crear el menu de Archivo,Ediccion, Ver, etc
Pero los submenu agregar tanto como quieras
Con lo siguinente creas los submenus.
Load MnuSubMenu1
MnuSubMenu1.Visible=true
MnuSubMenu1.Name="SubMenu1.2", etc. Creas los submenus en tiempo de ejecucion.