Свойство Width формы не соответствует установленному, хотя выглядит нормально. - PullRequest
1 голос
/ 21 апреля 2011

Стиль границы формы «фиксированный одинарный», поэтому пользователь не может изменять размеры формы вручную.

Существует пункт меню, который позволяет пользователю выбрать 1 из 2 настроек ширины для формы, при выборе широких (ширина = 11715) отображаются дополнительные элементы управления.

Во время события загрузки вызывается подпрограмма для установки различных значений и включает этот код:

     If rs.Fields("ShowAll").Value = True then
        Me.Width = 11715

Во время события выгрузки формы вызывается подпрограмма для записи настроек в следующий рази который включает в себя этот код:

     If Me.Width = 11715 Then
        rs.Fields("ShowAll").Value = True
     Else
        rs.Fields("ShowAll").Value = False
     End If

Один пользователь сообщил о ситуации, когда, хотя он всегда закрывается с формой «широкий», он всегда открывает «узкий».

Я никогда не видел, чтобы это случилось раньше, и никто никогда не сообщал об этом, и это не значит, что это не происходит в других местах.

У него машина с windows 7 и разрешение экрана 1280 X 1024.

Редактировать: Также, когда я проверял его базу данных, значение "ShowAll" равно False.

Ответы [ 2 ]

3 голосов
/ 21 апреля 2011

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

Private m_blnExpanded As Boolean

Private Property Let Expanded(ByVal vExpanded As Boolean)

       m_blnExpanded = vExpanded

End Property
Private Property Get Expanded() As Boolean

       Expanded = m_blnExpanded

End Property
2 голосов
/ 21 апреля 2011

Если вы собираетесь жестко закодировать ширину, вам нужно выбрать число твипов, кратное 15 для маленьких шрифтов и кратное 12 для больших шрифтов.Наименьшее кратное из двух равно 60, поэтому самое близкое к вашему жестко заданному значению - 11700, то есть 780px для маленьких шрифтов и 975px для больших шрифтов.

Помните, что win7 имеет больше размеров DPI, кроме 96(он же «small-fonts») и 120 (он же «large-fonts»), который полностью отказывает VB6, формирует подсистему.Так что вы можете с уверенностью предположить, что в VB6 размер пикселя составляет 15 или 12 твипов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...