sna*_*arf 7 .net c# rtf richtextbox winforms
我正在使用a 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
Run Code Online (Sandbox Code Playgroud)
要重现此问题,请使用Word(我正在使用2000)创建一个RTF文档,其中包含一个文本不是URL但是以有效URL为目标的链接,并以编程方式将.rtf文件加载到RichTextBox(我使用的是.NET 2.0)在C#Express 2008中.
要支持超链接,您需要RICHEDIT50W使用“ rich edit”版本。
为了那个原因:
RICHEDIT50W在.NET Framework中是本机使用的RichTextBox。在旧版本的.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;
}
}
}
Run Code Online (Sandbox Code Playgroud)根据RichTextBox的选择,Highlight和RichTextBox无法显示Unicode数学字母数字符号。
| 归档时间: |
|
| 查看次数: |
3169 次 |
| 最近记录: |