Hi, Jan -
The following code in the "Find" button will display the (nested) tabpage containing dw_3:
tab_1.SelectTab(2)
tab_1.tabpage_2.tab_3.SelectTab(3)
If you are asking how to programatically examine/search thru tab_1's tabpages and any nested tab controls and tabpages within tab_1's tab pages, you have to recursively examine the array of userobjects named "control[]" which is a property of each tab control and each tabpage user object, using the TypeOf() function on each array element until you find a userobject of type DataWindow! whose name is dw_3.
I suggest you start by examining tab_1's Control[] array of userobjects. Use UpperBound(Tab_1.Control[]) to determine how many tab pages tab_1 contains. Then use the TypeOf() function on each element of this array to obtain the enumerated object type (tab pages have a TypeOf() of UserObject!).
Once you can do this, you then examine the Control[] array of each tabpage, looking for userobjects that have a TypeOf() of Tab! (this will be a nested tab control contained on the tab page) or a TypeOf() of DataWindow!. If/when you find a (nested) tab control, examine the user objects (tabpages) in its Control[] array, and so on until you find the DataWindow named dw_3.
HTH, John
If you have reference to the DataWindow control (EX: In idw-array if it is the app I know) - then you can traverse outwards through tab pages, tab controls, custom visuals, and windows using GetParent( ) function in a loop. This builds the complete nested hierarchy that needs to select the tab page and set focus.
Such loop takes some type checking and type casting but the code itself is pretty straightforward.
Again if it is the app I know you may be able to search for .GetParent and find a similar loop I may have built a decade ago. It may not do all you need but it will give you the structure as a starting point.
HTH /Michael