还是我花屏现象的解决。今天我找到了原因,请专家评讲一下!
我的花屏现象让各位老师、专家费心了。经过对我的程序的指教,真的是让我受益匪浅呀。按照你们的意见,我也不断优化了我的程序,举一反三,对其他模块都作了修改。再次感谢。
程序优化了,改的也更简洁了,但花屏现象还是没有根解。但我结合老师们的意见,这几天在思考,反复对主录入表单进行了分析,我觉得是不是下面的事件出了问题,请老师们再次指教,我改了一下,感觉是好多了。
原先表单的grid1.AfterRowColChange事件中,执行了以下一大段:意思是解决grid1的几个列,通过三个check的值,判断可输入数据或不可以输入数据的。
cLJ=ThisForm.grid1
*--------
IF ThisForm.check1.Value=1
cLj.column8.Enabled=.F.
cLj.column9.Enabled=.F.
cLj.column10.Enabled=.F.
ENDIF
IF ThisForm.check2.Value=1
cLj.column8.Enabled=.F.
cLj.column9.Enabled=.F.
cLj.column10.Enabled=.F.
ENDIF
IF ThisForm.check3.Value=1
cLj.column8.Enabled=.F.
cLj.column9.Enabled=.F.
cLj.column10.Enabled=.F.
ENDIF
IF ThisForm.check1.Value=1.and.ThisForm.check2.Value=1
cLj.column8.Enabled=.T.
cLj.column9.Enabled=.F.
cLj.column10.Enabled=.F.
ENDIF
IF ThisForm.check1.Value=1.and.ThisForm.check3.Value=1
cLj.column8.Enabled=.T.
cLj.column9.Enabled=.F.
cLj.column10.Enabled=.F.
ENDIF
IF ThisForm.check2.Value=1.and.ThisForm.check3.Value=1
cLj.column8.Enabled=.F.
cLj.column9.Enabled=.T.
cLj.column10.Enabled=.F.
ENDIF
IF ThisForm.check1.Value=1.and.ThisForm.check2.Value=1.and.ThisForm.check3.Value=1
cLj.column8.Enabled=.T.
cLj.column9.Enabled=.T.
cLj.column10.Enabled=.F.
ENDIF
IF ThisForm.check1.Value=0.and.ThisForm.check2.Value=0.and.ThisForm.check3.Value=0
cLj.column8.Enabled=.F.
cLj.column9.Enabled=.F.
cLj.column10.Enabled=.F.
ENDIF
现在更改为:
将以上的程序拷贝到一个新建的(检测按钮)中,在表单INIT事件中执行(thisform.co_检测.click),一次性判断就行了。
更改理由:
我是想,如果把上述语句放在grid1.AfterRowColChange中,当在grid1中每移动一行或一列,都要执行上述语句,几条记录一录入,是不是执行太频烦,导致CPU达75%以上,直到花屏的主要原因呢?
[ 本帖最后由 YZCZWCB 于 2010-3-20 13:23 编辑 ]