设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3488|回复: 12
打印 上一主题 下一主题

[宏/菜单/工具栏] 如何改进这个问题?这是我在论坛中下到的一个VBA教材中教的。

[复制链接]
跳转到指定楼层
1#
发表于 2004-1-30 03:30:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我在论坛中下到的一个VBA教材中教的。

窗体真正居中显示
如下代码可以做到真正居中显示

Private Sub Form_Load()
DoCmd.Echo False ‘但是这句不起作用啊
Dim x, y As Integer
DoCmd.Maximize
x = Me.WindowWidth
y = Me.WindowHeight
DoCmd.Restore
DoCmd.Echo True
Move (x - Me.WindowWidth) / 2, (y - Me.WindowHeight) / 2
End Sub

运行时窗体倒是能居中,但是总是先最大化后再居中,请问怎样作使最大化的过程不显示,使之更专业。

[此贴子已经被作者于2004-1-30 8:38:29编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2004-1-30 16:40:00 | 只看该作者
请zhengjialon斑竹帮助看看

点击这里给我发消息

3#
发表于 2004-1-30 20:25:00 | 只看该作者
这是HUANGHAI总版主的示例,最大化是为了计算当前屏幕的大小,这样才能进行下一步的居中,也就是说这一步是不可少的,否则就不能居中了,所以暂不能解决。
4#
 楼主| 发表于 2004-1-31 20:02:00 | 只看该作者
可不可以让最大化的过程不显示出来,比如docmd.echo false(这句不起作用)

点击这里给我发消息

5#
发表于 2004-1-31 20:15:00 | 只看该作者
以下是引用zhf2004在2004-1-31 12:02:18的发言:
可不可以让最大化的过程不显示出来,比如docmd.echo false(这句不起作用)


改用:

Application.Echo False

ACCESS帮助中实例:
应用于 Application 对象。

下面的示例使用 Echo 方法防止在运行某些操作时屏幕被重画。当过程打开一个窗体并将它最小化时,用户只看见一个表示正在进行处理的沙漏图标,而屏幕并不会重画。当该任务完成后,沙漏将变回指针,重画将被重新打开。

Public Sub EchoOff()

' Open the Employees form minimized.
    Application.Echo False
    DoCmd.Hourglass True
    DoCmd.OpenForm "Employees", acNormal
    DoCmd.Minimize
    Application.Echo True
    DoCmd.Hourglass False

End Sub
6#
 楼主| 发表于 2004-1-31 23:10:00 | 只看该作者
谢谢zhuyiwen。我明白了。
7#
 楼主| 发表于 2004-1-31 23:13:00 | 只看该作者
但屏幕还是会闪一下
Application.Echo False
Dim x, y As Integer
DoCmd.Maximize
x = Me.WindowWidth
y = Me.WindowHeight
DoCmd.Restore
DoCmd.MoveSize (x - Me.WindowWidth) / 2, (y - Me.WindowHeight) / 2
Application.Echo True
8#
 楼主| 发表于 2004-2-2 01:14:00 | 只看该作者
如何让最大化的过程不显示?ACCESS2000,屏幕还是会闪。
Application.Echo False
Dim x, y As Integer
DoCmd.Maximize
x = Me.WindowWidth
y = Me.WindowHeight
DoCmd.Restore
DoCmd.MoveSize (x - Me.WindowWidth) / 2, (y - Me.WindowHeight) / 2
Application.Echo True
9#
 楼主| 发表于 2004-2-2 20:33:00 | 只看该作者
如何让最大化的过程不显示????ACCESS2000,屏幕还是会闪。
Application.Echo False
Dim x, y As Integer
DoCmd.Maximize
x = Me.WindowWidth
y = Me.WindowHeight
DoCmd.Restore
DoCmd.MoveSize (x - Me.WindowWidth) / 2, (y - Me.WindowHeight) / 2
Application.Echo True

点击这里给我发消息

10#
发表于 2004-2-2 20:41:00 | 只看该作者
Private Sub Form_Load()
Application.Echo False
Dim x, y As Integer

DoCmd.Maximize
x = Me.WindowWidth
y = Me.WindowHeight
DoCmd.Restore
DoCmd.MoveSize (x - Me.WindowWidth) / 2, (y - Me.WindowHeight) / 2, Me.WindowWidth, Me.WindowHeight
Application.Echo True
End Sub

我在ACCESS2000中运行它,屏幕并不闪呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-16 09:41 , Processed in 0.078367 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表