在TextBox上执行放置操作时,我的Undo堆栈被破坏了。
Reflector没有提供任何有关TextBox如何在此状态下处理Undo堆栈的见解。
我也看不到控制这个Undo堆栈的方法,它完全是内部的。我已经看到MS人们在MSDN论坛上大致相同。
对于如何防止文本框上的放置操作破坏其撤消历史记录堆栈,任何人都有任何想法?
答案 0 :(得分:0)
这并没有完全回答您的问题,但您可以为文本框管理自己的撤消堆栈。有许多Undo框架可以在这个区域提供帮助,或者如果这是唯一需要自定义撤消的文本框,您可以自己动手。
我碰巧在Codeplex上维护了其中一个撤消框架。 “Monitored Undo Framework"监视数据的更改,存储更改的值,并提供撤消/重做这些更改的简单方法。
我也看过反射器中TextBox的实现。代码并不简单,似乎遍历了一个非常大的代码库来进行文本处理。据我所知,可用于调整文本框撤销的唯一旋钮是打开/关闭撤消。除此之外,它似乎是一个黑盒子。