I am working in a Windows Forms application, it needs a lot (and I mean a lot) of controls. Using tab controls to organize them (sometimes nested tab controls).
I was reading how to load the App faster and a lot of people said to think twice if the controls are really needed. Well, to be honest I think that it’s possible to reduce the number of controls used BUT the client requested it that way, so there’s almost nothing I can do about it.
I was reading that I should use multithreading tactics but there’s a hardware limitation: the application MUST run on an average neetbook. It’s really a pain because I’m limited in terms of load time and how much space I can use to put the controls.
I was wondering if I can just load one or two tabs before the form is shown and then load the others, would that be possible/correct/efficient? If it is, how could I achieve it? I also was planning to use MDI childs but I need to retrieve all the information in all the controls at some point (from absolutely all the tabs and nested tabs).
Can you please give me some tips? Do you have any experience working on something similar?
One strategy is creating your main page with a
TabControlholding emptyTabPages.Then you can design several auxiliary forms (one for each
TabPageyou require) each containing a singlePanelcontrol withPublicvisibility (change the Panel’sModifiersproperty toPublic) holding the real UI elements that you would have placed on theTabPage.When the empty TabPage is clicked by the user, then you create the auxiliary Form (you don’t show it, just create it), and then access the Panel control in the auxiliary Form, then you can reparent it to your empty tab Page, like this
This will delay the TabPage’s control creation until the panel is clicked by the user 🙂
Hope this helps!