msgbox 会阻塞程序执行。但是现在我的程序在弹出消息窗体后,还要继续执行,如何实现?
我试了messagebox,也不行.

解决方案 »

  1.   

    我现在是用,但是如果有多个按键时,要有多个窗体,而且我在最后发现这个问题,原来的msgbox都要修改。
    如果有好的方法,我不想用窗体。
      

  2.   

    把窗体当成类来用
    每次new一个就可以了
      

  3.   

    MsgBox本来就是模式窗体~如果一定要还有一个办法,就是在需要的时候调用另一个程序显示MsgBox~显示完就关闭,就是麻烦了点~
      

  4.   

    正常来说msgbox出现后程序就要停下来的,如果真的一定要在msgbox出现后干一些什么事,一般的方法有:
    1.加一个timer,把要做的事在timer里完成。
    2.把程序搞成多线程
      

  5.   

    不要用 系统的msgbox 对话框,,自己做一个窗体 来代替。
      

  6.   

    我原先也遇到相同的问题,最后用一个窗体模拟msgbox完成的
      

  7.   

    窗体模拟msgbox加一个timer我就这样用的,都可以
      

  8.   

    原来用api方式是可行,只是我适合我的情况。我的解决方法是这样的:
    我的程序与硬件通信。在程序一起动,就与硬件建立连接,随时准备接收硬件的数据,并可能弹出消息提示框。如果有msgbox,时与硬件的通信中断。用api方式,一开始测试是可行的,但后来就如论如何也不可以。
    后来我把与硬件的通信,和弹出消息提示框放在activeX dll中,信息提示框用窗体来代替msgbox.现在测试一切正常.我的主程序的弹出消息提示框用api来实现,如果用msgbox会提示错误,不可用。下面的可以代替msgboxPrivate Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal Hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
    '================================================================================
    '=== 函数功能:弹出对话框,不阻塞程序执行
    '=== 参    数: Prompt As String,提示语句 Optional Buttons As VbMsgBoxStyle,类型
    '    Optional Title As Variant 对话框标题
    '=== 返 回 值:结果
    '=== 开 发 者:
    '=== 修改纪录:
    '===
    '===============================================================================
    Public Function MsgBox2(Prompt As String, Optional Buttons As VbMsgBoxStyle, _
        Optional Title As Variant) As VbMsgBoxResult
        If IsMissing(Title) Then Title = App.Title
        MsgBox2 = MessageBox(Screen.ActiveForm.Hwnd, Prompt, Title, Buttons)
    End Function
      

  9.   

    把窗体当成类来用
    每次new一个就可以了我是一位VB初学者,不知道具体是怎样写的?希望哪位能提供一下代码?
      

  10.   

    再创造一个线程用来执行 msgbox
      

  11.   

    dim frm as form
    set frm =new yourForm '如set frm =new form1
    '初始化操作
    'frm.xxx=xxxxfrm.show