Метод Form.Move не работает для разделенных форм
В моей базе данных MS Access 2016 у меня есть много форм, которые открываются в диалоговом режиме.Главное окно доступа не имеет вкладок.Главное окно отображает одну форму и иногда меняет размеры при переходе на другую основную форму.Стиль диалогового окна всплывает относительно главного окна.
Я использую метод Form.Move для позиционирования и изменения размера форм относительно расположения главного окна приложения Access.Метод Move отлично работает!Однако метод перемещения, похоже, ничего не делает для разделенных форм.
Я также пробовал docmd.movesize, поскольку он перемещает и измеряет размер разделенных форм.Это также прекрасно работает, за исключением того, что в моей ситуации docmd.movesize позиционирует форму относительно верхнего левого угла главного монитора и не может использовать отрицательные числа.Под «Основным монитором» я подразумеваю монитор, который установлен в качестве основного монитора в настройках дисплея Windows.
DoCmd.MoveSize( _Right_, _Down_, _Width_, _Height_ )
Некоторые пользователи моей базы данных используют 3 монитора.Они используют свой ноутбук в качестве основного монитора и располагают его под двумя большими мониторами.Любая настольная недвижимость над своим ноутбуком имеет отрицательные значения местоположения * Down в качестве параметра для DoCmd.MoveSize для применения.Метод Form.Move прекрасно обрабатывает отрицательные места, но он не работает для моих разделенных форм.Для меня DoCmd.MoveSize вызывает ошибку при использовании отрицательных значений.Значение " Right " также может быть отрицательным, если основной монитор находится между двумя большими мониторами.
Вот мои текущие настройки формы.Я почти уверен, что перепробовал каждую комбинацию.
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 "?
Спасибо всем заранее!
Бадди Мартин