[英]Broken hyperlinks in RTF file in RichTextBox
我正在使用RichTextBox
來顯示RTF文件,其中包含一個超鏈接。 鏈接文本不是URL(目標是有效的URL)。 RTF是使用Word創建的。 Word和寫字板都能正確識別鏈接(寫字板不會啟動鏈接,但會顯示相應的手形光標)。
當我將RTF加載到RichTextBox
,鏈接顯示格式正確(藍色和下划線),但不是表現得像鏈接,當光標在鏈接上移動它仍然是工字梁時, LinkClicked
事件將不會觸發,它實際上在鏈接后顯示尖括號之間的目標(這似乎不正確)。 由於鏈接文本不是URL,因此DetectUrls
在此處沒有幫助。
有沒有理由說RichTextBox
沒有正確處理這些鏈接,或者是一種讓它們按預期工作的方法?
這是代碼。
TipView.Rtf = tips[tipIndex];
// I've also tried TipView.LoadFile, with identical result
要重現此問題,請使用Word(我正在使用2000)創建一個RTF文檔,其中包含一個文本不是URL但是以有效URL為目標的鏈接,並以編程方式將.rtf文件加載到RichTextBox
(我使用的是.NET) 2.0 in C#Express 2008)。
要支持超鏈接,您需要RICHEDIT50W
版本的“富編輯” 。
為了那個原因:
RichTextBox
本機使用RICHEDIT50W
。 在舊版本的.NET Framework中,您可以修改RichTextBox
以使用RICHEDIT50W
:
public class ExRichText : RichTextBox { [DllImport("kernel32.dll", EntryPoint = "LoadLibraryW", CharSet = CharSet.Unicode, SetLastError = true)] private static extern IntPtr LoadLibraryW(string s_File); protected override CreateParams CreateParams { get { var cp = base.CreateParams; LoadLibraryW("MsftEdit.dll"); cp.ClassName = "RichEdit50W"; return cp; } } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.