Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

【Access示例】根据显示器的分辨率打开对应窗体

时 间:2020-07-16 08:01:25
作 者:name   ID:63090  城市:临汾
摘 要:根据显示器的分辨率打开对应窗体。
正 文:

在窗体的设计过程中,我们会发现不同分辨率或者缩放下,窗体显示效果差别非常大。这时候我们有以下的解决方案:

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


示   例:

点击下载此附件



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助