I totally agree with you that every UI design is application-dependant.
Yet, the Tab control is NOT a suitable replacement for Multiple UI dialogs. Suppose I dont want the Technician to see the Engg-privileged UI screens such as Create/Edit/Insert/Delete Test Sequencer. In Tab control it would be ugly to hide the tab page names till you verify the login credentials for their correctness. But, if it is a small dialog, the next UI need not have all these unnecessary title visible/invisible code, etc.
It ll be easier to track your hierarchy of the operation of your application
Tab controls have their fullest advantage when you want/need to do configuration settings for hundreds of channels/devices with some 8-10 parameters each within a single UI & save it to a file at one shot. I have worked on an application wherein the user needs to configure setting for some 240 nodes of energy load centers, each with some 6 parameters with interdependancy of data & enable/disable/visible/invisible.
Here, I kept one cluster with 10 nodes per tab page & had 24 such pages for the user to configure. It was child's play to get each of the cluster elements Class ID & determine the settings under seperate case structures within a single loop VI.
Later the system was upgraded to 800 nodes. Then, I enlarged the FP almost full-screen & places 40 elements per cluster with 20 tab pages. Everything worked fine. Here I exploited the full usage of the Tab control.
@ritesh- How to disable other tabs when i am in first tab. ??
See Ritesh, now more UI problems have started for you to sit/guide & solve.
Look for the Pages property node by placing a generic property node from the Applications pallette & take the array of references to all your tab pages & index the appropriate one by the Ttab control's value & then wire a '2' to that Page's Disabled property.
Doing will be easier than explaining without LV.
I think you might be knowing how to navigate to the Pages property thro' the VI Server >>VI... way.
If not, place a generic property node of the Tab control. Then rt-click >>Pages (I think) will get you in the correct direction. You ll get an array of references to the Pages present in the Tab control. Then you need to use the Index Array primitive & wire the Tab control directly to get the current page under view.
i would just sugest you to through the link below to find all the answers to ur queries.
You dont need to Disable/Enable any page in the Tab Control. You just have to hide the names of the Tabs and paint the Tab Control transparent. Now you just have to guide to different Tabs programatically just like closing a Vi and Running another VI.
When you create the pages property for a Tab, it ll give you an array of references to all the Pages in the Tab. You need to use an Index Array function & index it with the current value of the Tab. This will give you the rference to the Tab page in view. Now, use this ref with a property node to get its Disabled/Invisible property as per your requirement. Passing a value of '2' will make that Page to be disabled & greyed out.