Making a responsive form is not difficult. There are several alternatives that can be used (Tabbledlayoutpanel, Anchor Properties and Dock of the controls, Flowlayoutpanel and the junction of all inclusive).
I’ll give you a small example using the Anchor property of the controls.
See below:
The Anchor property indicates in which directions the control will be anchored. For example, if the anchor of my control is "Top, Right" it indicates that my control will always keep the same distance from the Top and Right edge of the parent’s control.
All control by default comes with the Anchor property defined as "Top,Left", meaning it will keep the relative distance above and left.
Following our example we will make the "Go" button always in the upper right corner of the form. To do this we will change the Achor property to "Top, Rigth". Once this is done, when resizing the form, it will assume the behavior below:
The next step is to make the text box always keep the same distance both left and right. For this, we will use the anchor "Top, Left, Rigth":
Finally, we want the grid below to keep the same distance in all directions. For this, just set Anchor as "Top, Bottom, Left, Rigth".
I hope this little example will help your goal. Note that this property Achor can be defined via code as below where I define "Botton, Right" in a text field:
textBox1.Anchor = AnchorStyles.Right | AnchorStyles.Bottom;
Remembering that the anchor (Anchor) is always relative to the parent control. In the example below I set the anchor to all directions on the "Hello" button but as this button has as parent a panel, it will follow the behavior of the parent.