Dat*_*ter 5 ms-access access-vba
我正在使用Access 2013并且有一些控件(列表框,按钮等),我希望在调整窗体大小时将其作为一个组保持在一个窗体中.
锚定将无法实现我正在寻找的东西,因为我不想将控件锁定到顶部/底部/左/右.我希望他们留在中心.
在表单的resize事件上使用像me.mycontrol.left = myform.Width/2这样的代码只是在做我正在寻找的东西,因为它将各个控件对齐到中心.我希望控件组居中.
有没有办法做到这一点?
编辑:这是一个例子,可以使这更清楚.假设我有一个100 x 100的表格,上面有两个按钮.按钮高20个单位,间隔10个单位.他们有以下职位:
Button1.Top = 25(10个单位空间从45开始)Button2.Top = 55
如果表单大小调整为200 x 200,则控件将具有以下位置:
Button1.Top = 75(10单位空间从95开始)Button2.top = 105
理想情况下,我很乐意把它变成一个模块,我只需要传递一个表格,然后它将获取每个控件的原始位置并计算新的位置.
编辑2:
根据Krish的想法,使用我的真实代码尝试了一次失败的尝试:
Private Sub Form_Resize()
Dim resizeFactor As Double
resizeFactor = Me.WindowWidth / Me.Width
Me.lstModule.Left = Me.lstModule.Left * resizeFactor
Me.ctlSubform.Left = Me.ctlSubform.Left * resizeFactor
Me.Box6.Left = Me.Box6.Left * resizeFactor
End Sub
Run Code Online (Sandbox Code Playgroud)
我认为锚定实际上就是答案.您只需在控件周围创建一个布局网格,并设置锚定,如下所示:
_____________________|___stretch down____|___________________
stretch across top___|___your controls___|stretch across top
_____________________|___stretch down____|___________________
Run Code Online (Sandbox Code Playgroud)
这样,您的控件将始终位于窗体/子窗体的中间.
编辑:截图

编辑:添加了有关边框的信息
添加边框可能会非常痛苦,但在某种程度上,这是可能的.您可以通过设置网格线颜色,将网格线样式设置为固定到按钮(默认为透明)并添加一些填充来完成此操作.在下面的示例中,我将LEFT,RIGHT和TOP的第一个按钮网格线样式设置为实心,并为这些边设置填充0.1".如果继续使用类似的方式,结果将如下所示:

| 归档时间: |
|
| 查看次数: |
9649 次 |
| 最近记录: |