2010-06-25 65 views
6

我正在处理大量winforms的大型c#项目,即使您可以调整窗体大小,窗体中的元素也不会缩放。使winform可调整大小的最佳方法?

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

几乎所有的表单子类从一个特定的形式,所以如果有什么我可以在基类中做,那会很棒。

回答

15

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

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

若要使用窗体进行控件大小调整,请将Anchor设置为全部四条边,或将Dock设置为Fill

+2

一旦你开始使用它,它是相当直观的。例如,如果在对话框的右下角有OK/Cancel按钮,请将'Anchor'属性设置为Bottom和Right,以使它们在表单上正确拖动。 – 2010-06-25 15:09:03

+0

所以我必须在每个表格的基础上做到这一点? – Malfist 2010-06-25 15:17:44

+0

@Malfist:是的;每个表单和每个控件。 .Net不会奇迹般地找出哪些控件应该伸展,哪些控件对齐到哪个方面。 – SLaks 2010-06-25 15:24:52

5

使用码头属性。

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

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

您通常只需要将锚点设置为父控件的底部和右侧,但是当您并排控制时会变得更加困难,那么您需要手动调整窗体OnResize事件上的控件的大小以使它们到达自然规模在一起。

相关问题