0

我的应用程序(我使用 Visual C# 2008 WinForms)涉及大量生成的控件。具体来说:按钮网格、标签数组、列表、标题等......全部填充,以便它们明显适合它们的容器。

我希望用户能够调整主窗体的大小,这显然需要我销毁生成的内容,并以适当的大小重新制作它,或者我可以索引每个控件,通过名称和类型找出它是什么,并且分别重新调整每个项目的大小。我必须在表单调整大小时/之后执行此操作。

有没有更智能的方法来做到这一点?Dock 和 Anchor 在这里不太适用,因为我正在处理不构成 100% 维度的项目(例如,按钮网格)。

4

2 回答 2

2

很难给出一个合理的答案,而不会看到所讨论的布局有多复杂。

但原则上,您应该使用布局容器FlowLayoutPanelTableLayoutPanel完成他们设计的工作。如果一个人不做这项工作,只需嵌套它们。

于 2012-07-27T12:54:39.027 回答
0

对接/锚定可能是这里的答案。您需要将网格锚定到顶部/底部/左侧/右侧或停靠它(效果相同,但网格将填充父控件)。

如果这样做正确,您的控件将与表单的其余部分一起重新调整大小,就像您在设计器中创建了所有内容一样。

我相信这样的事情会起作用:

Control.Anchor = AnchorStyles.TopLeft | AnchorStyles.BottomRight;

于 2012-07-27T12:54:31.307 回答