所以有几个愚蠢的问题:
如果我在某些情况下包含此内容:
MsgBox " ", vbOkOnly, "This little message box"
然后我可以用更多代码转身并点击“确定”按钮。所以基本上消息boox会自动弹出,然后自动消失?
我知道它很愚蠢,因为你想知道,为什么你想要这个消息框......
以及a)我只是想知道你是否能做到这一点,以及命令是什么
b)我有一些在消息框出现时可见的基本形状(形状对象)。但是如果没有消息框,则在等待单击按钮时不会暂时中断代码,因此可见的漂亮图像对象会在表单上生效。
所以我真的不需要消息框,只需要显示对象的临时中断。
谢谢!
答案 0 :(得分:5)
MsgBox
是模态。只有两个与模态相关的设置
因此,如果您当前的应用程序弹出了Msgbox,则在您单击消息框上的按钮之前,不会运行任何代码。
解决这个问题的方法是使用表单设计自己的消息框。您可以将其弹出并保持打开,然后您可以“点击”您想要的任何按钮。
如果您想要延迟,可以使用Win API来休眠
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub ApiSleep(SleepMilliseconds as Long)
Sleep SleepMilliseconds
End Sub
答案 1 :(得分:1)
我知道这是前一段时间被问到的,但我使用的解决方案是:
CreateObject("WScript.Shell").PopUp "Save Successful!", 1, "Save"
如何工作是一个消息框显示正常,但它有自己的系统计时器,这意味着你可以自动关闭消息框,甚至不做任何事情。
数字1表示在自动关闭之前要显示的秒数。
我将此用作保存程序,因为它是一个有用的通知,保存了某些东西,但不要求用户实际点击“确定”。
无论如何,这是我的两个便士值得回答。希望这也有助于其他人!
答案 2 :(得分:-1)
Sendkeys "~",false
应该关闭msgbox(假设它有焦点)
我认为你正在寻找油漆事件,或强迫表格刷新,以实现你真正想做的事情!
编辑:啊,该死的,是的,因为这是代码被暂停的模态...哦哦!正如所建议的那样,要么编写自己的,要么你必须在另一个线程中抛出一些东西,我不知道如何在MS Access中进行多线程!第二次修改:您是否看过Application.Echo False
暂停并Application.Echo True
恢复绘画布局?