小编Dat*_*ter的帖子

如何在MS Access表单上动态保持控件居中(相对位置)?

我正在使用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)

ms-access access-vba

5
推荐指数
1
解决办法
9649
查看次数

标签 统计

access-vba ×1

ms-access ×1