我在winforms中使用richtextbox。 我必须在richtextbox中显示一些将只读设置的链接。 对于带有
等空格的链接,它可以正常工作\\电子文件\ DSC_0618.JPG
但是当文件有空格时
\\ 2527 threshold.png
它不会工作,链接会因空间而破裂。
我使用了此链接Link to File's path with spaces in RichTextBox?
中提到的解决方案但问题是转义序列也会根据它显示在Richtextbox中。
有没有办法可以在不使用转义序列的情况下将其作为链接?
答案 0 :(得分:1)
我发现此链接http://www.codeproject.com/cs/miscctrl/RichTextBoxLinks.asp可以帮助您将任何文字的链接插入RichTextBox
。有一个关于如何在此处获取LinkText
和Link 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)替换空格字符(''),然后在链接中点击处理程序反过来。有关示例代码,请参阅我对类似问题的回答: