我正在使用 Access 2013,并且有许多控件(列表框、按钮等),当调整表单大小时,我希望它们作为一个组在表单上保持居中。
锚定无法实现我正在寻找的目标,因为我不想将控件锁定到顶部/底部/左侧/右侧。我希望他们留在中心。
只需使用这样的代码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
理想情况下,我想将其转换为一个模块,我只需向其传递一个表单,它就会获取每个控件的原始位置并计算新位置。
Edit 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
我认为锚定实际上就是答案。您只需在控件周围创建一个布局网格并设置锚定,如下所示:
_____________________|___stretch down____|___________________
stretch across top___|___your controls___|stretch across top
_____________________|___stretch down____|___________________
这样您的控件将始终保持在窗体/子窗体的中间。
编辑:屏幕截图
编辑:添加有关边界的信息
添加边框可能会很痛苦,但在某种程度上,这是可能的。您可以通过设置网格线颜色、将按钮的网格线样式设置为实心(默认为透明)并添加一些填充来实现此目的。在下面的示例中,我将第一个按钮的左侧、右侧和顶部的网格线样式设置为实心,并将这些边的填充设置为 0.1"。如果继续采用类似的方式,结果将如下所示:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)