在Richtextbox中链接到包含空格的文件路径

时间:2013-07-18 09:01:53

标签: c# winforms richtextbox

我在winforms中使用richtextbox。 我必须在richtextbox中显示一些将只读设置的链接。 对于带有

等空格的链接,它可以正常工作
  

\\电子文件\ DSC_0618.JPG

但是当文件有空格时

  

\\ 2527 threshold.png

它不会工作,链接会因空间而破裂。

我使用了此链接Link to File's path with spaces in RichTextBox?

中提到的解决方案

但问题是转义序列也会根据它显示在Richtextbox中。

有没有办法可以在不使用转义序列的情况下将其作为链接?

2 个答案:

答案 0 :(得分:1)

我发现此链接http://www.codeproject.com/cs/miscctrl/RichTextBoxLinks.asp可以帮助您将任何文字的链接插入RichTextBox。有一个关于如何在此处获取LinkTextLink Url的特殊说明,这在原始演示中似乎找不到。在这里,我将演示LinkClicked事件处理程序中的链接信息提取:

//Insert link to test
richTextBoxEx1.InsertLink("StackOverFlow", "http://www.stackoverflow.com");
//LickClicked event handler
private void richTextBoxEx1_LinkClicked(object sender, System.Windows.Forms.LinkClickedEventArgs e)
{
        string[] s = e.LinkText.Split(new string[]{@"#http://"}, StringSplitOptions.None);
        if (s.Length == 2)
        {
            s[1] = "http://" + s[1];
            MessageBox.Show("A link has been clicked.\nThe link text is '" + s[0] + "'\nThe link URL is '" + s[1] + "'");
            System.Diagnostics.Process.Start(s[1]);//Try visiting the link.
        }
}

我认为这对你(以及其他有同样问题的人)来说是最美丽的解决方案。

答案 1 :(得分:0)

如果你想要一些基本的东西,它具有在视觉上模仿文件名中的空格的效果,只需用UNICODE非破坏空间(U + 00A0)替换空格字符(''),然后在链接中点击处理程序反过来。有关示例代码,请参阅我对类似问题的回答:

https://stackoverflow.com/a/19853473/2967903