如何在RichTextBox的超链接中使用自己的协议?

时间:2017-08-26 04:53:21

标签: c# winforms hyperlink richtextbox

我添加的超链接必须是标准协议超链接之一。这意味着它应该是http://,https://,ftp://,file:// etc。

是否可以在RTF文本中添加我自己的协议说ref://或类似的东西?

供您参考,

当我输入现有协议(http,https,..)时,它将被视为链接, enter image description here

我想知道,是否有可能通过我自己的超链接实现这一点,如下图所示? enter image description here

请提出宝贵的建议,

提前致谢,

2 个答案:

答案 0 :(得分:1)

        private string editlLink(string link, string editWith) //link -> link to edit, editWith -> the protocol you want
        {
            return editWith + link.Substring(link.IndexOf(':'), link.Length - link.IndexOf(':'));
        }

并称之为:

        string edittedLink = editlLink("https://afnanmakhdoom.com", "ftp");

答案 1 :(得分:1)

默认情况下,当该链接具有https:\,http:\ .. iec即系统已知的默认协议时,RichTextBox将显示超链接。 RichTextBox仅支持以下协议,

https://msdn.microsoft.com/en-us/library/windows/desktop/bb787991(v=vs.85).aspx

  • callto
  • 文件
  • ftp
  • gopher
  • HTTP
  • HTTPS
  • mailto
  • 消息
  • 注释
  • NNTP
  • 的OneNote
  • outlook,prospero,tel,telnet,wais,webcal

似乎没有支持将自己的协议显示为RichTextBox中的超链接。请参阅以下链接,

https://blogs.msdn.microsoft.com/murrays/2009/08/31/automatic-richedit-hyperlinks/

https://blogs.msdn.microsoft.com/murrays/2009/09/24/richedit-friendly-name-hyperlinks/

请注意

对于变通方法,您可以为自己的协议超链接添加下划线和文本颜色为蓝色。