簡體   English   中英

從文本中剝離RTF格式會導致Richtextbox出現句柄錯誤

[英]Stripping RTF Formatting from text causes handle error with Richtextbox

我在同一服務器上運行兩個單獨的C#ASP.NET程序。 他們每個人都在各自業務層dll中使用Richtextbox控件,從存儲在數據庫中的文本中剝離RTF格式。

var rtf = new RichTextBox {Rtf = itemWeb.RTF_DESCRIPTION};
                    item.WebDescription = rtf.Text;

問題是,當兩個程序都執行時,經常會發生此行失敗(在兩個程序上)並出現以下錯誤的情況。

[Win32Exception (0x80004005): Error creating window handle.]

這些程序不共享任何代碼或dll。 唯一的共同點是用於剝離格式的技術以及它們位於同一服務器上的事實。

這樣使用Richtextbox是否存在已知問題? 我沒有編寫代碼,但是在dll中使用UI元素似乎是非標准的,即使這是搜索如何剝離格式時的常見解決方案。

理想情況下,我無需使用Richtextbox就能找到解決方案。 我發現一個使用的正則表達式很接近,但是不能保證會刪除100%的格式。 關於為什么發生這種情況的任何解釋或任何變通辦法,將不勝感激。

謝謝!

我最近在使用靜態類中的方法(從RTF轉換為Text)中開始遇到相同的錯誤。

我將其追溯到RichTextBox沒有正確處理(或可能足夠快)的情況,即使RichTextBox的上下文位於方法中(不是全局)。

如果您的代碼執行得不好,那么這可能不是同一個問題。

可以通過對轉換進行30,000+次的測試護理進行編碼來復制它。 實施using子句解決了該問題。

using (System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox())
{
    rtBox.Rtf = str;
    str = rtBox.Text; // convert the RTF to plain text.
}

這有效,但速度很慢。 無需創建控件就可以執行此操作會很好,但這是Microsoft對RTF轉換的官方建議

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM