Assigning the MdiParent in the OnLoad of the MdiChild will work, but it will force all the controls in the form to load twice.
First off, changing the value of the MdiParent on the UltraTabbedMdiManager from null to the Form or vice versa is not the proper way to toggle between tabbed and non-tabbed layouts. It is recommended that you instead set the Enabled property of the UltraTabbedMdiManager to True or False. Try changing this first to see if it fixes the issues.
If using the Enabled property still gives you the same issues, I would recommend trying to set the MdiParent after the entire Form's constructor has completed but before it has had its Handle created (due to a Show call). This would probably be easiest to accomplish from the code creating and showing the MdiChild, but if you must set the MdiParent from within the MdiChild, try overriding OnHandleCreated. In your implementation, set the MdiParent, then call the base implementation. It is after the handle is created, but it is the earliest sync point in the handle creation process and may prevent the loading of the form's controls twice.
Hello Mike. Thanks for your response
About assigning the MdiChild.MdiParent=MainForm in the OnHandleCreated: your suggestion worked fine. I got the same effect than assigning the MdiParent from outside before invoking MdiChild.Show (but because of the way my application is designed, the MdiParent has to be assigned in the MdiChild implementation). However, I still got an issue there. Let’s follow these steps:
Both the main menu issue and the loading issue sound like bugs. I would recommend submitting them to the support group: http://ko.infragistics.com/gethelp.