【发布时间】:2015-06-04 14:48:48
【问题描述】:
我有一个面板(称为 main_box),我在其中添加了大约 20 个面板。每个子面板都放置在其上方的正下方。当我调整表单大小时,子面板会改变大小(就像我想要的那样),但它们不会在父框内重新定位,所以我需要手动进行。
我正在尝试:
Dim vert_pos as integer = 0
For Each o As Object In main_box.Controls
o.location = New Point(0, vert_pos)
vert_pos += o.height
Next
但是子框的位置乱了。它们的出现顺序与我添加到父框时的顺序不同。
如何确保它们按顺序重新定位?
【问题讨论】:
-
我们是否假设“main_box”是一个自动滚动面板?
-
FlowLayoutPanel怎么样? -
是的,它是一个自动滚动面板
-
流程布局面板能给我带来什么好处?
-
首先打开
Option Strict,控件集合包含控件而不是对象,并且“位置”不是对象的属性。要手动重新定位,您应该使用AutoScrollPositionX 或 Y,具体取决于它们是垂直滚动还是水平滚动