我是火车王 发表于 2024-3-18 14:04:39

关于单次撤销多个单元格值

Spread事件会更改三个单元格值,怎么才能一次ctrl+z撤回三个单元格的值,UndoManager.PerforUnaction一次只能放一个行为,没办法多个

Richard.Ma 发表于 2024-3-18 18:21:22

是的,UndoManager目前没有办法实现你的需求,也没有其他的解决办法。

我是火车王 发表于 2024-3-20 18:48:55

Richard.Ma 发表于 2024-3-18 18:21
是的,UndoManager目前没有办法实现你的需求,也没有其他的解决办法。

谢谢你的回答,还有一个问题,在执行redo的过程中调用了事件,在事件里面的UndoManager方法不能够正常使用吗

Richard.Ma 发表于 2024-3-21 15:57:47

有具体的代码吗,你是在ActionComplete事件中来使用的吗?

L1JiaHang. 发表于 2024-3-21 16:47:02

Richard.Ma 发表于 2024-3-21 15:57
有具体的代码吗,你是在ActionComplete事件中来使用的吗?

代码不方便给,剪切值之后执行Redo,在执行redo的时候,会改变单元格的值,然后进到CellChange里面,然后CellChange里面会执行新的UndoManager的剪切方法,但是值并没有被剪切掉

L1JiaHang. 发表于 2024-3-21 16:51:23

Richard.Ma 发表于 2024-3-21 15:57
有具体的代码吗,你是在ActionComplete事件中来使用的吗?

是因为代码执行顺序吗,可是如果没有redo过,会触发cellchange事件吗,还是剪切之后又执行了一次redo

Richard.Ma 发表于 2024-3-21 18:02:45

理论上来说你在UndoManager的事件中这样用,确实会造成循环的调用。

如果需要协助调查,请给一个复现问题的demo,我帮你看看原因
页: [1]
查看完整版本: 关于单次撤销多个单元格值