I have the same problem in an application I'm writing. Each MDI child needed to able to load it's own toolbar buttons/menus, and be able to respond to events from these controls. My solution (though it's not really mine, as I've seen it used in other applications) was to create a special interface that all of my MDI child forms would implement. The important methods of the interface include "LoadToolbar" and "ToolbarClick". In the MDI parent form, I then call these methods as needed. For example, before showing a child form, I call the LoadToolbar method, and the child form can then create the appropriate buttons on the toolbar (note it has to cast it's parent form to the appropriate form type to access the toolbar). In a similar fashion, when the toolbar was clicked, I'd call the "ToolbarClick" method to let the child form handle the event whatever way it wanted to (and would pass the appropriate arguments).