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