2010-07-22 61 views
1

我有一个WinForms RichTextBox,并且默认情况下,撤消对大多数情况都适用,但是当我粘贴一些文本时(我已经将它的格式设置为纯文本),然后尝试撤消它不会撤消刚刚粘贴的文字。在RichTextBox中撤消不会撤消粘贴文本

任何帮助解决方案?

+0

我删除了C#从标题,因为你的问题无关,与C#,因为你已经有了C#在你的标签。 – 2010-07-22 23:25:54

回答

2

按设计,TextChanged事件不会触发创建撤消状态。粘贴会触发TextChanged事件,所以这就是发生这种情况的原因。要解决它,

我会建议将事件处理程序绑定到调用KeyUp事件的TextChanged事件。 KeyUp事件确实会触发创建撤销状态创建。

+2

如何做到这一点?在C#中, – Viion 2010-07-23 05:40:03

0

而不是显式替换文本,您可以使用剪贴板。而这将不明确撤消堆栈

var originalClbData = Clipboard.GetDataObject(); 
    Clipboard.SetText(newText); 
    txtMailBody.SelectAll(); 
    txtMailBody.Paste(); 
    if (originalClbData != null) Clipboard.SetDataObject(originalClbData);