Form.Move方法不适用于拆分表单
在我的MS Access 2016数据库中,我有很多以对话框模式打开的表单。 Access主窗口没有选项卡。主窗口显示一种形式,有时在转到其他主表单时会更改大小。对话框样式相对于主窗口形成弹出窗口。
我使用Form.Move方法相对于Access Main Application窗口的位置来定位和调整表单的大小。 Move方法效果很好!但是,move方法似乎对拆分表单无效。
我也尝试过docmd.movesize,因为它确实可以移动并调整拆分表格的大小。它也很好用,除了在我的情况下,docmd.movesize相对于主监视器的左上角放置表单,并且不能使用负数。 “主监视器”是指在Windows显示设置中设置为主监视器的监视器。
DoCmd.MoveSize( _Right_, _Down_, _Width_, _Height_ )
我数据库的某些用户使用3个监视器。他们将笔记本电脑用作主显示器,并将其放置在两个较大的显示器下方。便携式计算机上方的任何台式机房都具有负的“ Down ”位置值,以作为DoCmd.MoveSize要应用的参数。 Form.Move方法可以很好地处理否定位置,但不适用于我的拆分表单。对我来说,DoCmd.MoveSize在使用负值时会导致错误。 当主监视器位于两个较大的监视器之间时,“ 右”值也可以为负。
这是我当前的表单设置。我很确定我已经尝试了每种组合。
Pop Up = No
Modal = No
Default View = Split Form
Auto Center = Yes
Auto Resize = No
Fit to Screen = Yes
Border Style = Sizeable
使用此代码打开表格,该代码将覆盖上面的某些设置。
DoCmd.OpenForm "frmWorkGroupList", , , , , acDialog
表格大小代码
DoCmd.MoveSize xPosMax, yPosMax, vWidth, vHeight
Me.Move Left:=xPosMax, Top:=yShiftTwips, Width:=vWidth, Height:=vHeight
我已经寻找了好几个小时的解决方案,并且尝试了所有我能想到的。我在网上可以找到的唯一解决方案是将表单重新创建为主表单内部的子表单,以模拟拆分表单。我不想那样做。我希望拆分表格能够正常工作。
当前,我正在使用DoCmd.MoveSize并检查负值。如果x和/或y的值为负,我将移动到默认的x和y位置,该位置将落在主监视器上。
是否有任何解决方案可以将拆分表单移动/调整大小到具有负 Down 位置值的桌面位置?
提前谢谢大家!
巴迪·马丁