【问题标题】:Auto-fit MS access application in full screen全屏自动适配 MS 访问应用程序
【发布时间】:2018-03-07 10:11:25
【问题描述】:

我开发了一个 MS 访问应用程序,其中包含多个表单和子表单,其中包含选项卡视图。此应用程序在我的系统中看起来不错,但在我的客户端的监视器中,它在应用程序之后的右侧显示了一个空白区域。我尝试谷歌搜索并找到 DoCmd.Maximize 属性,但它没有锻炼,因为它不能在子表单中工作。请建议我该怎么做才能使我的应用程序适合任何分辨率的屏幕。

【问题讨论】:

  • Ms Access 不流畅/不响应。您可以使用 Anchors 将控件停靠在屏幕上。
  • 或使用彼得的ShrinkerStretcher
  • @Gustav:每位客户 40 美元!这不便宜...
  • @PatrickHonorez:这取决于你的时间有多宝贵。

标签: ms-access automation vba


【解决方案1】:

AFAIK,它是必须处理其子窗体控件宽度的主窗体。我不知道以下内容是否对您有帮助,但如果您创建一个表单并在其上放置一个名为SizeProperties_Label 的标签,您可以粘贴以下代码。它在调整表单大小时显示一些属性。熟悉了这些属性后,或许可以将本示例中的标签大小调整应用到子窗体控件的大小调整中。


Option Compare Database
Option Explicit
Dim mCaptionCounter As Long
Const ConvertTwipsToCm As Long = 567

Private Sub display_Form_Resize()
Dim S As String

    mCaptionCounter = mCaptionCounter + 1
    S = Now & " -- " & mCaptionCounter & vbCrLf & vbCrLf
    S = S & display_One_Parameter("me top     : ", CDbl(Me.WindowTop / ConvertTwipsToCm), "   ")
    S = S & display_One_Parameter("me left    : ", CDbl(Me.WindowLeft / ConvertTwipsToCm))
    S = S & display_One_Parameter("me height  : ", CDbl(Me.WindowHeight / ConvertTwipsToCm), "   ")
    S = S & display_One_Parameter("me width   : ", CDbl(Me.WindowWidth / ConvertTwipsToCm))
    S = S & display_One_Parameter("me insideh : ", CDbl(Me.InsideHeight / ConvertTwipsToCm), "   ")
    S = S & display_One_Parameter("me insidew : ", CDbl(Me.InsideWidth / ConvertTwipsToCm))

    With SizeProperties_Label
    S = S & display_One_Parameter("lbl top    : ", CDbl(.Top / ConvertTwipsToCm), "   ")
    S = S & display_One_Parameter("lbl left   : ", CDbl(.Left / ConvertTwipsToCm))
    S = S & display_One_Parameter("lbl height : ", CDbl(.Height / ConvertTwipsToCm), "   ")
    S = S & display_One_Parameter("lbl width  : ", CDbl(.Width / ConvertTwipsToCm))
    End With    
    SizeProperties_Label.Caption = S
End Sub

Private Function display_One_Parameter(MeText As String, D As Double, Optional EndText As String = vbCrLf) As String
    display_One_Parameter = MeText & Format(D, "0.00") & EndText
End Function

Private Sub perform_Form_Resize_Gamma()
Dim L As Long

    On Error Resume Next
    L = (Me.InsideHeight):     Debug.Print Format(L, "#.##")
    Me.SizeProperties_Label.Top = L * 0.05 ' can cause error [2100], so, for now, resume next
    Me.SizeProperties_Label.Height = L * 0.9

    L = (Me.InsideWidth):     Debug.Print Format(L, "#.##")
    Me.SizeProperties_Label.Left = L * 0.05 ' can cause error [2100], so, for now, resume next
    Me.SizeProperties_Label.Width = L * 0.9

End Sub

Private Sub Form_Resize()
    Call display_Form_Resize
    Call perform_Form_Resize_Gamma
End Sub
Private Sub Details_Click()
    Call display_Form_Resize
End Sub
Private Sub Form_Click()
    Call display_Form_Resize
End Sub
Private Sub Form_Load()
    mCaptionCounter = 0
End Sub
Private Sub SizeProperties_Label_Click()
    Call display_Form_Resize
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多