数据窗口的ItemChaned事件中修改当前值的方法

最近写PB时遇到要需要在数据窗口的ItemChanged事件中修改正在编辑的字段的值,发现SetItem+和SetText+都不好使,在网上搜了一下,给我复习了一边+ItemChanged+事件的特性,就是依据返回值,来判断接受或者拒绝当前值和焦点是否可以离开。所以直接写+SetItem 或+SetText+是不能修改当前值的。

那么沿着这种思路走下去,接受当前值应该是把+data+的值赋给当前编辑框,拒绝当前值则是什么都不做。

如果要修改当前编辑框的值,要么就是等接受了+data+值之后再修改,要么就是不接受+data+值,直接修改。

对于这两种情况就有两种方法了:

1.+先接受+data+值,再修改(其实这里接受与不接受都没影响,因为是跳出了+ItemChanged+事件之后再修改的)++这里要用到+PostEvent+函数,这个函数是把触发的事件插入到事件列表的最后面,也就是说会在+ItemChanged+事件结束后在执行,也就可以实现修改当前编辑字段的值了。

2.拒绝接受+data+值,直接修改++这里因为拒绝接受+data+值(在+ItemChanged+事件中返回+1+或者+2),是对当前编辑的内容不做处理,所以在+ItemChanged+事件修改当前编辑字段的值就不会被覆盖或者取消了。

这里需要注意的是,直接给当前编辑字段赋值要用+SetItem+,而不能使用+SetText+,因为+SetText+会调用+AcceptText +函数,而+AcceptText+会将+data+的值覆盖+SetText+的值。

以上就是在网上搜索到的两种方法,真的是要对事件和方法的作用及调用理解清楚,才能知道怎么回事了,呵呵&oq=最近写PB时遇到要需要在数据窗口的ItemChanged事件中修改正在编辑的字段的值,发现SetItem+和SetText+都不好使,在网上搜了一下,给我复习了一边+ItemChanged+事件的特性,就是依据返回值,来判断接受或者拒绝当前值和焦点是否可以离开。所以直接写+SetItem 或+SetText+是不能修改当前值的。

那么沿着这种思路走下去,接受当前值应该是把+data+的值赋给当前编辑框,拒绝当前值则是什么都不做。

如果要修改当前编辑框的值,要么就是等接受了+data+值之后再修改,要么就是不接受+data+值,直接修改。

对于这两种情况就有两种方法了:

1.+先接受+data+值,再修改(其实这里接受与不接受都没影响,因为是跳出了+ItemChanged+事件之后再修改的)++这里要用到+PostEvent+函数,这个函数是把触发的事件插入到事件列表的最后面,也就是说会在+ItemChanged+事件结束后在执行,也就可以实现修改当前编辑字段的值了。

2.拒绝接受+data+值,直接修改++这里因为拒绝接受+data+值(在+ItemChanged+事件中返回+1+或者+2),是对当前编辑的内容不做处理,所以在+ItemChanged+事件修改当前编辑字段的值就不会被覆盖或者取消了。

这里需要注意的是,直接给当前编辑字段赋值要用+SetItem+,而不能使用+SetText+,因为+SetText+会调用+AcceptText +函数,而+AcceptText+会将+data+的值覆盖+SetText+的值。

以上就是在网上搜索到的两种方法,真的是要对事件和方法的作用及调用理解清楚,才能知道怎么回事了,呵呵

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值