2010-07-22 62 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);