.net Messagebox是否与表单一起显示?

.net Messagebox是否与表单一起显示?,.net,vb.net,vb.net-2010,.net,Vb.net,Vb.net 2010,我使用后台工作人员执行一些任务,当后台工作人员成功完成时,会出现一个消息框,我的问题是,如果我最小化我的表单,并且当我单击表单时出现消息框,消息框仍然显示为模拟,除非我单击消息框-我可以在底部的任务栏中看到它,但它已最小化 当用户单击任务栏中的表单时,是否可能出现与表单一起出现的消息框 目前,我已经尝试在messagebox之前添加以下内容,但是messagebox似乎仍然最小化 me.activate 更新 很抱歉没有添加编码,我认为这是基本的编码,没有关系,但在这里 Private Sub

我使用后台工作人员执行一些任务,当后台工作人员成功完成时,会出现一个消息框,我的问题是,如果我最小化我的表单,并且当我单击表单时出现消息框,消息框仍然显示为模拟,除非我单击消息框-我可以在底部的任务栏中看到它,但它已最小化

当用户单击任务栏中的表单时,是否可能出现与表单一起出现的消息框

目前,我已经尝试在messagebox之前添加以下内容,但是messagebox似乎仍然最小化

me.activate
更新

很抱歉没有添加编码,我认为这是基本的编码,没有关系,但在这里

Private Sub BGWorker_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BGWorker.DoWork


            If Not worker.CancellationPending Then

‘ Do code

                If worker.CancellationPending Then
                    e.Cancel = True
‘ Do Code
                    Exit Sub
                End If

            End If


End Sub


  Private Sub BGWorker_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BGWorker.RunWorkerCompleted
            Me.Activate()
            If e.Cancelled Then
Messagebox.show(“Cancelled”)
            Else
Messagebox.show(“Successful”)

                End If
    End Sub
问题是,如果我将屏幕放在其他屏幕的顶部,则消息框很好。但是,如果它的ir最小化,如果我有其他窗口覆盖表单,则消息框将保持最小化,除非我在任务栏中单击它


我认为me.activate会帮助我,因为消息框只会出现在表单中。

我用你的代码做了一个测试项目,我能够重现并修复这个问题。
Activate
方法不会取消最小化表单。为此,需要设置
WindowState
属性。试试这个:

Private Sub BGWorker_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BGWorker.RunWorkerCompleted
    Me.WindowState = FormWindowState.Normal  ' Add this line
    Me.Activate()
    If e.Cancelled Then
        Messagebox.show(“Cancelled”)
    Else
        Messagebox.show(“Successful”)

    End If
End Sub

发布重现问题的代码。一段代码就值得千言万语的解释……大家好,我添加了我的代码Hello Steve,是的,消息框出现在BGWorker运行Worker Completeted事件中。但是我认为只有在do work事件中才需要调用?@JackSparrow是的,你是对的。如果是从
RunWorkerCompleted
事件中显示它,则不需要调用
Invoke
。从UI线程引发
RunWorkerCompleted
事件。正如Hans所说,如果你能发布一个复制问题的代码的简化示例,那将是非常有帮助的。嗨,Steve,我将编辑我的第一篇文章,包括我的代码。