2013-02-28 33 views
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秒完成表单消失。有什么方法可以在屏幕上显示屏幕直到我的程序完成?

回答

0

我认为UpdateSchema调用是您的“长期过程”,而frmWaitUpdate是包含您希望显示的消息的表单。

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

另外,我相信你的代码运行的窗体需要在objWait.Show将工作。