sorry - thread updated before I finished
a 'redraw' sub would look something like
Code:
Private sub reDraw()
Dim ctrl as control
dim ctrltop as single
ctrl=screen.activecontrol
ctrltop=ctrl.top+ctrl.height+60
if me(mid(ctrl.tag,1)).visible=true then 'section is visible, so hide it
me(mid(ctrl.tag,1)).visible=false
ctrl=me(ctrl.tag)
while left(ctrl.tag,1)<>"-"
me(mid(ctrl.tag,1)).visible=false
ctrl=me(ctrl.tag)
wend
else 'open it
me(mid(ctrl.tag,1)).top=ctrltop
me(mid(ctrl.tag,1)).visible=true
ctrl=me(ctrl.tag)
ctrltop=ctrltop+ctrl.height+60
While left(ctrl.tag,1)<>"-" or ctrl.tag<>""
me(ctrl.tag).top=ctrltop
me(ctrl.tag).visible=true
ctrl=me(ctrl.tag)
ctrltop=ctrltop+ctrl.height+60
wend
'Adjust tops of remaining controls
While ctrl.tag<>""
if ctrl.visible=true
me(ctrl.tag).top=ctrltop
me(ctrl.tag).visible=true
ctrl=me(ctrl.tag)
ctrltop=ctrltop+ctrl.height+60
end if
wend
end sub
this does not contain error code has not been tested but created from memory and will need to be adjusted to account for controls that are aligned horizontally