我有一个WinForms RichTextBox,并且默认情况下,撤消对大多数情况都适用,但是当我粘贴一些文本时(我已经将它的格式设置为纯文本),然后尝试撤消它不会撤消刚刚粘贴的文字。在RichTextBox中撤消不会撤消粘贴文本
任何帮助解决方案?
我有一个WinForms RichTextBox,并且默认情况下,撤消对大多数情况都适用,但是当我粘贴一些文本时(我已经将它的格式设置为纯文本),然后尝试撤消它不会撤消刚刚粘贴的文字。在RichTextBox中撤消不会撤消粘贴文本
任何帮助解决方案?
按设计,TextChanged
事件不会触发创建撤消状态。粘贴会触发TextChanged
事件,所以这就是发生这种情况的原因。要解决它,
我会建议将事件处理程序绑定到调用KeyUp
事件的TextChanged
事件。 KeyUp事件确实会触发创建撤销状态创建。
如何做到这一点?在C#中, – Viion 2010-07-23 05:40:03
而不是显式替换文本,您可以使用剪贴板。而这将不明确撤消堆栈
var originalClbData = Clipboard.GetDataObject();
Clipboard.SetText(newText);
txtMailBody.SelectAll();
txtMailBody.Paste();
if (originalClbData != null) Clipboard.SetDataObject(originalClbData);
我删除了C#从标题,因为你的问题无关,与C#,因为你已经有了C#在你的标签。 – 2010-07-22 23:25:54