在窗体的设计过程中,我们会发现不同分辨率或者缩放下,窗体显示效果差别非常大。这时候我们有以下的解决方案:
1、在窗体的Load事件中,我们获取窗体的宽度,然后根据窗体的宽度,使用vba代码设置每个控件的位置和大小。
2、给主流的几种分辨率创建不同的窗体,根据不同的分辨率显示不同的窗体
......
我们这篇文章主要讨论第二种方法
思 路:
1、打开一个非弹出的窗体
2、在窗体加载事件中,将Access窗体最大化
3、隐藏Access窗体左侧导航窗格/对象浏览器
4、获取窗体的宽度,然后根据宽度大概判断出对应的分辨率是多少,关闭当前窗体,显示出各个分辨率对应的窗体
代 码:
Public Function getScreenWidth()
Dim width As Integer
'Access应用程序窗口最大化
DoCmd.RunCommand acCmdAppMaximize
'隐藏左侧导航窗格/对象浏览器
DoCmd.SelectObject acForm, , True
DoCmd.RunCommand acCmdWindowHide
width = Form.WindowWidth
'显示左侧导航窗格/对象浏览器
DoCmd.SelectObject acForm, , True
'大约2k分辨率
If width > 29000 Then
getScreenWidth = 2000
Exit Function
End If
'大约1080分辨率
If width > 20000 Then
getScreenWidth = 1080
Exit Function
End If
'大约720分辨率
If width > 15000 Then
getScreenWidth = 720
Exit Function
End If
End Function
Private Sub Form_Load()
Dim screenSize As Integer
screenSize = getScreenWidth
DoCmd.Close acForm, "frmOpen"
Select Case screenSize
Case 2000
DoCmd.OpenForm "frm2k"
Exit Sub
Case 1080
DoCmd.OpenForm "frm1080"
Exit Sub
Case 720
DoCmd.OpenForm "frm720"
Exit Sub
End Select
End Sub
示 例:
点击下载此附件