We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Why does MainFrameBarManager create a second form?

Why does the MainFrameBarManager create a second copy of my form when I set the MdiParent for the child form. This is forcing two copies of everything to be made and making my app much more complicated than it needs to be. xxx.xxxxxxx.demo.dll!xxx.xxxxxxx.demo.View.VersionView.VersionView() Line 42 C# syncfusion.tools.windows.dll!Syncfusion.Windows.Forms.Tools.XPMenus.MainFrameBarManager.GetFormFromType(System.Type formType = {"xxx.xxxxxxx.demo.View.VersionView"}) + 0x5f bytes syncfusion.tools.windows.dll!Syncfusion.Windows.Forms.Tools.XPMenus.MainFrameBarManager.RegisterMdiChildTypes(System.Type[] formTypes = {Length=1}, System.Windows.Forms.Form[] forms = {Length=1}) + 0x212 bytes syncfusion.tools.windows.dll!Syncfusion.Windows.Forms.Tools.XPMenus.MainFrameBarManager.OnMdiChildAdded(System.Windows.Forms.Form childForm = {xxx.xxxxxxx.demo.View.VersionView}) + 0x114 bytes syncfusion.tools.windows.dll!Syncfusion.Windows.Forms.Tools.XPMenus.MainFrameBarManager.MdiChildAdded(System.Object sender = {System.Windows.Forms.MdiClient}, System.Windows.Forms.ControlEventArgs e = {System.Windows.Forms.ControlEventArgs}) + 0x34 bytes system.windows.forms.dll!System.Windows.Forms.Control.OnControlAdded(System.Windows.Forms.ControlEventArgs e = {System.Windows.Forms.ControlEventArgs}) + 0x5b bytes system.windows.forms.dll!System.Windows.Forms.Control.ControlCollection.Add(System.Windows.Forms.Control value = {xxx.xxxxxxx.demo.View.VersionView}) + 0x371 bytes system.windows.forms.dll!System.Windows.Forms.MdiClient.ControlCollection.Add(System.Windows.Forms.Control value = {xxx.xxxxxxx.demo.View.VersionView}) + 0x10c bytes system.windows.forms.dll!System.Windows.Forms.Control.set_ParentInternal(System.Windows.Forms.Control value = {System.Windows.Forms.MdiClient}) + 0x25 bytes system.windows.forms.dll!System.Windows.Forms.Form.set_ParentInternal(System.Windows.Forms.Control value = {System.Windows.Forms.MdiClient}) + 0x20 bytes system.windows.forms.dll!System.Windows.Forms.Form.set_MdiParentInternal(System.Windows.Forms.Form value = {xxx.xxxxxxx.MainForm}) + 0x213 bytes system.windows.forms.dll!System.Windows.Forms.Form.set_MdiParent(System.Windows.Forms.Form value = {xxx.xxxxxxx.MainForm}) + 0x10 bytes

3 Replies

AD Administrator Syncfusion Team April 11, 2006 03:07 PM UTC

Forgot to mention VersionView is the child form.


MJ Mano J Syncfusion Team April 12, 2006 02:17 PM UTC

Hi Matthew, When you call RegisterMDIChildTypes to register one or more child types, the framework internally creates a new instance of the child Form (a dummy form( to get the list of toolbars and bar items (and uses those to display the disable state). Note that this dummy instance will never be shown (it''s Form_Load will never be called) and will be disposed on app shutdown. If you utilize explicit merging (with a call to RegisterMdiChildTypes) then the dummy forms still get created. However if you use implicit merging (without a call to RegisterMdiChildTypes) then no dummy form will be created. We are looking at various alternatives to get rid off the dummy form logic. Please let me know if you have any questions. Thanks for using Syncfusion products. Regards, Mano


AD Administrator Syncfusion Team April 12, 2006 05:04 PM UTC

The issue is that menu items are create when the dummy child form is created. These menu items are tighly bound to that form. Since the form doesn''t have the correct information in it, the menu items don''t work properly. I''m not explicitly registering my types so I don''t understand why these dummy forms are being created. -Matt

Loader.
Live Chat Icon For mobile
Up arrow icon