使winforms可resize的最佳方法是什么?

我正在开发一个带有很多winforms的大型c#项目,即使你可以调整表单大小,表单中的元素也不会缩放。

当用户更改表单大小时,如何使表单元素(如datagridview,文本区域等)缩放。

几乎所有的表单都是从一个特定的表单中inheritance的,所以如果我能在基类中做些什么,那就太好了。

您应该在窗体中的控件上设置AnchorDock属性。

Anchor属性控制控件的哪些边缘“绑定”或“绑定”到其窗体的相应边缘。
例如,如果将“ Anchor设置为“ Bottom ,则控件的下边缘与其父级底部之间的距离不会更改,因此在调整窗体大小时控件将向下移动。
如果将Anchor设置为Top | Bottom Top | Bottom ,当您调整表单大小时,控件将垂直resize。

要使控件使用表单resize,请将“ Anchor设置为所有四个边,或将“ Dock设置为“ Fill

使用AnchorDock属性。

Anchor允许您将控件的特定边固定到父控件的两侧。

Dock将整个控件绑定到父控件的一侧,或者可以设置为填充父控件的内容。

您通常只需要将Anchor设置为父控件的底部和右侧,但是当您并排控制时会变得更加困难,然后您需要手动调整表单OnResize事件上的控件以使它们自然地一起缩放。