找回密码
 立即注册

QQ登录

只需一步,快速开始

miyaminn

论坛元老

48

主题

121

帖子

2万

积分

论坛元老

积分
22182

活字格认证

miyaminn
论坛元老   /  发表于:2015-7-6 09:29  /   查看:10723  /  回复:7
我现在想实现如下功能:
输入一个值,在Change中进行值的Format,然后不管是离开单元格还是离开Spread都会触发Check。
因为是移行项目,VB6是在Change中Format,LeaveCell中做Check,而VB6的LeaveCell在离开Spread时也有效,而VB.NET这里是无效的。
所以想着使用Leave事件中调用LeaveCell事件。但这就有一个问题,Change事件是在Leave事件触发之后才触发的,这样会导致后续的处理有问题
之前想在Leave事件中把spread的EditMode设为False,但这种方式只对Tab离开Spread有效,鼠标操作无效。
请问有什么好的方法,让Change事件先于Leave事件触发(或者Leave事件途中触发)?

7 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-7-6 13:51:00
沙发
您好,
问题已经收到,我这边正在帮您处理,会在一个工作日内给您回复。请稍后。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-7 11:25:00
板凳
您好,
经过调查,我们发现不管是离开单元格还是离开Spread都会先触发EditModeOff,后触发Change。
您可以尝试在EditModeOff作Format,在Change里面Check。
  1.     Private Sub FpSpread1_EditModeOff(sender As Object, e As EventArgs) Handles FpSpread1.EditModeOff
  2.     End Sub
复制代码
  1.     Private Sub FpSpread1_Change(sender As Object, e As FarPoint.Win.Spread.ChangeEventArgs) Handles FpSpread1.Change
  2.     End Sub
复制代码
不知道是否能够满足您的需求。希望能够帮助到您。
回复 使用道具 举报
miyaminn
论坛元老   /  发表于:2015-7-7 12:54:00
地板
Check不能放在Change里面的。
放在Change里,如果第一次输入错误的值,确实是会报Message且不能离开单元格,但你不修正就离开的话,就不会走Check了
然后确认了一下,EditModeOff和Change都要晚于Leave事件触发。有没有办法在Leave中间或是Leave之前就让它触发Change之类的方法?
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-7 16:42:00
5#
您好,
是怎么的需求导致您的项目,需要将Format和Check放在两个事件当中呢?一个不是更加方便吗?

在焦点离开时,Validated和Validating都会先于Leave事件触发。

希望能够帮助到您。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-20 10:11:00
6#
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
rbgongming
论坛元老   /  发表于:2015-7-31 16:01:00
7#
添加Leave事件,在Leave事件中先去掉Change事件
在去调用LeaveCell事件,这样做就可以解决了。
把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-7-31 17:31:00
8#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部