VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 更新数据时防止表单刷新
发表评论(0)作者:BUILDER.COM, 平台:VB6.0+Win98, 阅读:11879, 日期:2003-08-29
    当更新一个含有大量数据的表单时,这个表单可能会在屏幕上闪烁或是需要很长时间才能更新。一个表格或数据表一次只能读取一行时通常就会出现这样的情况。  

这些情况的发生有两个可能的原因:一、控制器再次显示了表单,引起窗口的闪烁;二、某个控制器的Change事件的代码出现了错误,而这个控制器更新了同一个表单中的其他控制器。

不论是什么原因,你都可以用LockWindowUpdate API函数来克服表单闪烁和更新缓慢的问题。该功能可以禁止或激活在一个窗口中的绘图功能。

要禁止在表单窗口中的绘图功能,只需向该函数输入表单的窗口名称(hWnd属性);要重新激活窗口的绘图功能,只需向该函数输入NULL或0。

Private Declare Function LockWindowUpdate Lib "user32" _
(ByVal hwndLock As Long) As Long

Private Sub UpdateForm()
    Call LockWindowUpdate(Me.hWnd)
    注释:Perform update operation
    Call LockWindowUpdate(0)
End Sub
该函数对任何暴露了自己hWnd属性的控制器都起作用。然而,你要注意该函数一次只能锁住一个窗口。而且,禁止了一个窗口的绘图功能后,一定要记得再激活它,否则这个窗口将不能再更新。