[C#]richtextbox显示rtf

luckyguy_sy 2010-01-31 12:26:54
我通过richtextbox的loadfile(stream, RichTextBoxStreamType)方法将一下*.rtf文件读入到richtextbox,其它没什么问题,但是当中的超级链接会将目的链接显示出来,但是我不想让它显示出来,不知道哪位大侠能帮帮忙,谢谢!具体如下:

以下是rtf文件中的超级链接:
link
loadfile以后就变成:
link <http://www.baidu.com>
但是我想的是loadfile以后还是:
link
...全文
559 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luckyguy_sy 2010-02-02
  • 打赏
  • 举报
回复
最后通过这个方法解决了,谢谢以上各位的回答!结帖
luckyguy_sy 2010-02-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lzsh0622 的回复:]
RichTextBox 对超链接的支持不太好,从其它文件中复制就会出现楼主所描述的现象。
可以在RichTextBox专门对超链接再处理一下,再保存后加载就没问题了。

RichTextBox中加超链接的方法:
http://topic.csdn.net/t/20040726/17/3211669.html
[/Quote]
To lzsh0622
你能再给说明白点怎么处理一下吗?我看了一下,没有看出来怎么处理,谢谢
luckyguy_sy 2010-02-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 doufuxadf 的回复:]
\kerning2{\field{\*\fldinst{HYPERLINK "http://www.163.com/"}}{\fldrslt{\cf1\ul www}}}\cf0\kerning0\ulnone\f0

上面rtf格式表示的超链 www 网址是http://www.163.com/
读取后 处理一下再交给richbox

string x = richTextBox1.Rtf;
//找超链接
int a = x.IndexOf("HYPERLINK \"");
  a+=(string)"HYPERLINK \"".Length;
  int b = x.IndexOf("\"}",a+1);
  string temp = x.Substring(a, b - a);//提取http://www.163.com/
//找超链接文字
  a = x.IndexOf("\\ul ", b + 2);
            a+=(string)"\\ul ".Length;
            b = x.IndexOf("}", a);
string ok;
            if ((x.Substring(a, b - a).Contains(temp)) &&( x.Substring(a, b - a).Length>temp.Length))
            {
                ok = x.Substring(0, a) + x.Substring(a, b - a - temp.Length) + x.Substring(b);//删除重复的http://www.163.com/
            }

  richTextBox1.Rtf = x;



[/Quote]
这样可以把显示出来的链接去了,但是链接失效了,怎么办呢?
doufuxadf 2010-02-01
  • 打赏
  • 举报
回复
\kerning2{\field{\*\fldinst{HYPERLINK "http://www.163.com/"}}{\fldrslt{\cf1\ul www}}}\cf0\kerning0\ulnone\f0

上面rtf格式表示的超链 www 网址是http://www.163.com/
读取后 处理一下再交给richbox

string x = richTextBox1.Rtf;
//找超链接
int a = x.IndexOf("HYPERLINK \"");
a+=(string)"HYPERLINK \"".Length;
int b = x.IndexOf("\"}",a+1);
string temp = x.Substring(a, b - a);//提取http://www.163.com/
//找超链接文字
a = x.IndexOf("\\ul ", b + 2);
a+=(string)"\\ul ".Length;
b = x.IndexOf("}", a);
string ok;
if ((x.Substring(a, b - a).Contains(temp)) &&( x.Substring(a, b - a).Length>temp.Length))
{
ok = x.Substring(0, a) + x.Substring(a, b - a - temp.Length) + x.Substring(b);//删除重复的http://www.163.com/
}

richTextBox1.Rtf = x;


lzsh0622 2010-01-31
  • 打赏
  • 举报
回复
RichTextBox 对超链接的支持不太好,从其它文件中复制就会出现楼主所描述的现象。
可以在RichTextBox专门对超链接再处理一下,再保存后加载就没问题了。

RichTextBox中加超链接的方法:
http://topic.csdn.net/t/20040726/17/3211669.html
wuyq11 2010-01-31
  • 打赏
  • 举报
回复
rtf内容是怎样的
qldsrx 2010-01-31
  • 打赏
  • 举报
回复
可能是rtf文件本身的问题

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧