读书人

关于itemchanged,itemerror的疑问解决

发布时间: 2012-03-09 21:42:55 作者: rapoo

关于itemchanged,itemerror的疑问
第一个疑问:
1、itemchanged:
return 1
2、itemerror:
return 3
发现事件触发情况为:itemchanged-->itemerror-->itemchanged-->itemerror.
为什么是两次?

第二个疑问:
1、itemchanged:
return 1
2、itemerror:
return 2
光标并不能移动到下一个单元格。
为什么?

[解决办法]
第一个疑问:是不是你其他地方调用了,仔细检查程序
第二个疑问:仔细研究返回值,根据返回值操作
[解决办法]
第一个问题。
1.可能其他地方在调用
2.继承的数据窗口,祖先脚本没有屏蔽。
第二个问题。
PB的帮助。
Event ID: pbm_dwnitemchange

Return value
Set the return code to affect the outcome of the event:
0 (Default) Accept the data value
1 Reject the data value and do not allow focus to change
2 Reject the data value but allow the focus to change

[解决办法]
第一个疑问:
1、itemchanged:
return 1 这里不接受变化数据,不允许移动焦点
2、itemerror:
return 3 这里不接受变化数据,允许移动焦点return 1
发现事件触发情况为:itemchanged-->itemerror-->itemchanged-->itemerror.
为什么是两次?

第二个疑问:
1、itemchanged:
return 1 这里不接受变化数据,不允许移动焦点,试试return 2
2、itemerror:
return 2 接受变化数据
光标并不能移动到下一个单元格。
为什么?
[解决办法]
应该都不是问题吧!
1.你用messagebox了吧!直接跟踪得话呢就会执行一次,只有当焦点离开时,相当又输入一次,会又触发一次的!

2.因为itemchanged:中返回1,不让移动焦点啊!
连别的列都点不了!
itemchanged 返回1 时会触发 itemerror ,itemerror 返回2只说允许接收数据,并不管焦点了!





[解决办法]

探讨
第一个疑问:
1、itemchanged:
  return 1
2、itemerror:
  return 3
发现事件触发情况为:itemchanged-->itemerror-->itemchanged-->itemerror.
为什么是两次?

第二个疑问:
1、itemchanged:
  return 1
2、itemerror:
  return 2
光标并不能移动到下一个单元格。
为什么?

读书人网 >PB

热点推荐