You can hide the TextField when no data is present instead of only the caption, if you would like.
TextField1.presence = "hidden";
Also for your second question:
If you set the form Subform as Flowed, then it will readjust the sections when one of them is hidden.
Thanks
Srini