0

我正在尝试显示一条等待消息,这实际上是一个表单,而一个长进程正在某个不同的文件中运行。我面临的问题是,一旦进程开始,表单就会消失,但它仍然处于活动状态并正在运行进程

我的代码:

    Dim objWait As New frmWaitupdate
    Dim strReply As String

    Dim ischange As Boolean
    Dim obj1 As New MyBO.UpdateSchemaBO()
    ischange = obj1.CheckSchemaChanges(Application.ProductVersion.ToString())

    If ischange = True Then

        lblMsg.Text = "Schema changes found please wait  Please wait."

        obj1.AddVersionTable(Application.ProductVersion.ToString())
        Me.Visible = True

        strReply = obj1.UpdateSchema(Me)
        If strReply <> "" Then
            MessageBox.Show(strReply, "abc")
        Else
            MessageBox.Show("Schema updated successfully", "abc")
        End If


        'objWait.Hide()
    ElseIf ischange = False Then

        MessageBox.Show("No schema changes found", "abc")


        End If

    End If

随着流程在 UpdateSchema() 中进行,大约需要 30-45 秒才能完成表单消失。有什么方法可以让表单在屏幕上可见,直到我的流程完成?

4

1 回答 1

0

我假设 UpdateSchema 调用是您的“漫长过程”,并且 frmWaitUpdate 是包含您希望显示的消息的表单。

而不是调用“Me.Visible = True”,您应该调用“objWait.Show(Me)”。确保等待表单不是模态的,否则代码执行将在那里停止,直到等待表单关闭。当漫长的过程完成后,您可以调用“objWait.Hide()”或 objWait.Visible = False”。

另外,我相信在 objWait.Show 工作之前,您的代码运行的形式需要可见。

于 2013-02-28T18:41:11.373 回答