锚定
twinBASIC 中您看到的新窗体设计器功能之一是"锚点"属性:

点击左侧的箭头会展开它,提供 4 个选项:

这些控制当窗体调整大小时,每个点相对于其父窗体或控件容器的边框的位置是否保持。默认情况下,它的行为符合预期;顶部和左侧保持不变,控件不会随窗体调整大小或移动,除非您手动使用代码处理,通常在 Form_Resize 事件中。这提供了一种替代方法来自动处理大小调整和移动。
如果控件在所有 4 个位置都锚定,它将随窗体在两个维度上调整大小:

如您所见,所有锚点都保持与边缘的恒定距离,导致控件被调整大小。如果您只锚定顶部、左侧和底部,它将垂直调整大小,但不会水平调整:

右侧没有锚定到边缘,所以它没有随边缘移动。
如果您移除顶部和左侧的锚点(False),但保持右侧和底部锚点(True),控件将随底部和右侧移动:

控件保持相同大小,因为右侧和底部锚定到边缘,它们随窗体移动,导致整个控件移动。
控件容器
上述示例说明了这如何与直接在窗体上的控件一起工作。但如果它们在框架或其他控件容器内呢?锚点是相对于其父级的,因此调整窗体大小不会调整或移动框架内的控件,除非框架也以改变其大小/位置的方式锚定。
例如,如果文本框在所有 4 个点都锚定,在框架内且框架在所有 4 个点都锚定,那么它将随框架调整大小:

如果我们从文本框移除底部锚点,但不是框架,框架将沿底部调整大小,但文本框不会:

使用这 4 个点,您可以自动维护相对大小、位置或两者,而无需手动编写任何代码。
[!提示] 提醒,twinBASIC 还为窗体添加了
MinWidth、MinHeight、MaxWidth和MaxHeight属性,因此这些也可以与控件锚点结合自动管理。您可能希望设置最小大小,以便控件不会消失。
停靠
类似于锚定但略有不同,tB 还提供"停靠"属性:

您可能已经熟悉状态栏控件如何将自己锁定到窗体底部;这就是此属性控制的定位类型。控件可以停靠在任何一侧,它将保持全宽或全高,并随窗体或父容器的那一侧移动。例如,具有 vbDockBottom 的命令按钮:

除了四个侧面,还有最后一个选项:vbDockFill。这将使控件填充其整个父区域。当与容器(如图片框或框架控件)一起使用时,这最有用——当它是其子级时,它只会填充该容器,而不是整个窗体。
vbDockFill 将排除其他停靠控件,因此您可以例如有一个具有 vbDockRight 的控件和另一个具有 vbDockFill 的控件,后者覆盖窗体或容器的其余部分,而第一个控件保持在右侧的位置。
多个控件
如上一节末尾所述,可以将多个控件停靠到同一位置,例如命令按钮和文本框停靠到底部。以下示例还显示了具有上面提到的 vbDockRight + vbDockFill 的图片框控件:

[!提示] 两个(或更多)停靠在同一位置的控件的顺序由首先设置的那个决定。目前它们不能被拖动重新排列,但您可以将停靠属性设置回无,并按所需顺序重新设置它们。