Office中国论坛/Access中国论坛

标题: 如何改进这个问题?这是我在论坛中下到的一个VBA教材中教的。 [打印本页]

作者: zhf2004    时间: 2004-1-30 03:30
标题: 如何改进这个问题?这是我在论坛中下到的一个VBA教材中教的。
这是我在论坛中下到的一个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编辑过]


作者: zhf2004    时间: 2004-1-30 16:40
请zhengjialon斑竹帮助看看
作者: zhengjialon    时间: 2004-1-30 20:25
这是HUANGHAI总版主的示例,最大化是为了计算当前屏幕的大小,这样才能进行下一步的居中,也就是说这一步是不可少的,否则就不能居中了,所以暂不能解决。
作者: zhf2004    时间: 2004-1-31 20:02
可不可以让最大化的过程不显示出来,比如docmd.echo false(这句不起作用)
作者: zhuyiwen    时间: 2004-1-31 20:15
以下是引用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
作者: zhf2004    时间: 2004-1-31 23:10
谢谢zhuyiwen。我明白了。
作者: zhf2004    时间: 2004-1-31 23:13
但屏幕还是会闪一下
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
作者: zhf2004    时间: 2004-2-2 01:14
如何让最大化的过程不显示?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
作者: zhf2004    时间: 2004-2-2 20:33
如何让最大化的过程不显示????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
作者: zhuyiwen    时间: 2004-2-2 20:41
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中运行它,屏幕并不闪呀
作者: zhf2004    时间: 2004-2-3 03:26
看不到最大化的过程么?

作者: zhuyiwen    时间: 2004-2-3 04:02
看不到
作者: zhf2004    时间: 2004-2-6 20:04
你的显示器是15寸的吧,800*600,只能看到一闪




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3