Kind of… The previous post only affected the one group the button was on.
I made a server side UD function called Position_Grp2
with the code:
// set the "group" vertical position based on position and height of Grp1
Inputs.epiPcGroupBox2.YPosition = Inputs.epiPcGroupBox1.YPosition + Inputs.epiPcGroupBox1.Height + 10;
/ / position the Grp2 hide/show button
Inputs.epiPcButton2.YPosition = Inputs.epiPcGroupBox2.YPosition;
Inputs.epiPcButton2.XPosition = Inputs.epiPcGroupBox2.XPosition +Inputs.epiPcGroupBox2.Width - Inputs.epiPcButton2.Width;
// position the controls inside of grp2, based on the top of grp2
Inputs.txt_2_1.YPosition = Inputs.epiPcGroupBox2.YPosition + 30;
Then in the button for grp1, just call that UD method after grp1’s controls have been hidden/shown:
You could make each of the Position_Grpnnfunctions look to see which groups are open or closed, either by their height, or the label of their button.
edit
here it is in action: