In this paper, on the basis of http://blog.csdn.net/greystar/archive/2008/03/13/2175958.aspx, extended.
When we insert a link in RichTextBox, if the link is a file path (such as C:/AA/bb.doc), The/symbol will be lost. in this way, if we want to click on some connections, the obtained data is incorrect.
Public void insertlink (string text, string hyperlink, int position)
{
If (position <0 | position> This. Text. length)
Throw new argumentoutofrangeexception ("position ");
This. selectionstart = position;
// This. selectedrtf = @ "{/rtf1/ANSI" + TEXT + @ "/V #" + hyperlink + @ "/V0}"; // Chinese garbled characters may occur. This. selectedrtf = @ "{/rtf1/ansicpg936" + texttortf (text) + @ "/V #" + hyperlink + @ "/V0 }";
This. Select (Position, text. Length + hyperlink. Length + 1 );
This. setselectionlink (true );
This. Select (Position + text. Length + hyperlink. Length + 1, 0 );
}
// Used for path Processing
Public String texttortf (string atext)
{
String vreturn = "";
Foreach (char vchar in atext)
{
Switch (vchar)
{
Case '//':
Vreturn + = @"//";
Break;
Case '{':
Vreturn + = @"/{";
Break;
Case '}':
Vreturn + = @"/}";
Break;
Default:
If (vchar> (char) 127)
Vreturn + = @ "/u" + (INT) vchar). tostring () + "? ";
Else vreturn + = vchar;
Break;
}
}
Return vreturn;
}
In this article