Свернуть всплывающую форму в определенную позицию
3/21/2018

Когда я сворачиваю определенную всплывающую форму с помощью DoCmd.Minimize в макросе кнопки, она переходит в положение по умолчанию в левом нижнем углу окон, скрывая часть моей основной формы.

Я хотел бы свести его к минимуму до определенной позиции в правом нижнем углу, используя VBA или просто макрос на кнопке, но я не могу найти, как этого добиться.

Любая помощь будет очень признательна.

Правильный Ответ

Miss Roger Walsh
12/24/2021

> Я поиграл с вашим предложением не сворачивать форму, а изменять ее размер, но не могу найти рабочего решения, потому что при использовании команды DoCmd.MoveSize > с кнопки для изменения размера и размещения формы в соответствующем положении, > нет возможности восстановить форму (на самом деле она уже > "восстановлена"), поэтому ее можно свернуть только в левый нижний угол или > развернуть на весь экран! Да, это создает проблему. Мое предположение состояло в том, что всплывающая форма будет (псевдо-)минимизирована и (псевдо-)максимизирована кодом, а не прямым взаимодействием с пользователем, поэтому об этом не нужно беспокоиться. Вот подход, который, похоже, работает до тех пор, пока приложение доступа максимально расширено. Он улавливает событие изменения размера формы, определяет, сворачивается ли форма, и если да, перемещает ее полностью вправо от окна доступа. В нем используется блестящий класс FormWindow Николь Калинойу, который можно загрузить с веб-сайта Access здесь: http://www.theaccessweb.com/forms/frm0042.htm [http://www.theaccessweb.com/forms/frm0042.htm ] Формы: Переместите и измените размер окон формы из кода С помощью этого модуля класса, импортированного в вашу базу данных, затем вы можете создать процедуру события для события изменения размера всплывающей формы следующим образом: Private Sub Form_Resize() Dim fw Как новое окно clFormWindow Если Me.windowWidth <= 1920, То fw.hwnd = Me.hwnd fw.Слева = (fw.Родитель.Слева + fw.Родитель.Ширина) - fw.Width Установить fw = Ничего Конец, если конец Sub Для меня, в условиях, которые вы описываете, это, кажется, работает, хотя это выглядит немного странно, потому что анимация для сворачивания формы показывает, что она движется вниз и влево, но затем она появляется справа. Кстати, я склонен согласиться с Томом ван Стипхаутом в том, что переопределение поведения доступа по умолчанию может привести к путанице. Может быть, было бы лучше просто скрыть всплывающую форму, а затем показать ее снова, когда произойдет какое-нибудь подходящее событие. Однако я никогда не мог устоять перед вызовом.

Помогло людям

Похожие вопросы

718

Просмотров

4

Ответов