我正在尝试显示一条等待消息,当一个长进程在某个不同的文件中运行时,它实际上是一个表单。 我面临的问题是,一旦流程开始,表单就会消失,但它仍处于活动状态并正在运行流程
我的代码:
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 :(得分:0)
我认为UpdateSchema调用是您的“漫长过程”,而frmWaitUpdate是包含您希望显示的消息的表单。
不应该调用“Me.Visible = True”,而应该调用“objWait.Show(Me)”。确保等待表单不是模态的,否则代码执行将在那里停止,直到等待表单关闭。当漫长的过程完成后,你可以调用“objWait.Hide()”或objWait.Visible = False“。
另外,我认为在objWait.Show工作之前,运行代码的形式需要显示。