C# WinForms – Best Way to Make Forms Resizable

.net-3.5c++winforms

I am working on a largish C# project with a lot of Windows Forms forms that, even though you can resize the form, the elements in the form don't scale.

How can I make the form elements (such as the datagridview, text area's, etc.) scale when the user changes the size of the form?

Nearly all the forms subclass from one specific form, so if there's something I can do in the base class, that'd be great.

Best Answer

You should set the Anchor and Dock properties on the controls in the forms.

The Anchor property controls which edges of a control are "bound" or "tied" to the corresponding edges of its form.
For example, if you set Anchor to Bottom, the distance between the control's bottom edge and the bottom of its parent will not change, so the control will move down as you resize the form.
If you set Anchor to Top | Bottom, the control will resize vertically as you resize the form.

To make a control resize with the form, set the Anchor to all four sides, or set Dock to Fill.

Related Question