我有一个执行长操作的VB6应用程序。比方说,保存到数据库需要1分钟以上。
虽然这种保存持续,但我希望我的窗口被锁定(禁用)并显示沙漏光标。
但下一段代码不会这样做:
Private Sub Update_Click()
Screen.MousePointer = vbHourglass
Me.MousePointer = vbHourglass
Me.Enabled = False
'This takes more than minute:
Update
Me.MousePointer = vbDefault
Screen.MousePointer = vbDefault
Me.Enabled = True
End Sub
即。表单仍然启用,没有沙漏光标。如果我正在尝试用表单做任何事情,它就会挂起。
如何让应用程序变得用户友好,让用户知道应用程序按下按钮后会做什么?
不幸的是我只能使用VB6,所以我不能使用后台工作程序。
注意:在Win7计算机中,相同的代码会使光标出现沙漏,因此用户会看到该应用正在执行某些操作。在XP系统中,应用程序只是挂起,光标没有任何反应。
答案 0 :(得分:0)
您应该在更新之前添加DoEvents,以便Windows窗体可以将表单更新为新状态。
DoEvents为windows提供了处理待处理事件的时间。
答案 1 :(得分:0)
尝试在Me.Refresh
Me.Enabled = False
这会强制表单处理任何未完成的事件