c#文本框中的链接

我有一个自定义的Jabber IM客户端,我遇到链接问题。 当输入http://something.com之类的内容时,我希望它在消息窗口中显示为链接。 消息窗口是标准的c#文本框。 有没有办法将其标记为链接,以便可以单击并打开网页?

谢谢

RichTextBox可以检测到URL,我不认为常规TextBox可以检测到它们。 但是,您始终可以使用单行RichTextBox作为输入。

http://msdn.microsoft.com/en-us/library/f591a55w.aspx

Jamie Garcia先生提供的解决方案很棒,由提供的MSDN文章链接引用。 但是,考虑到很久以前提出这个解决方案,我想提出一个更新的解决方案。

MSDN解决方案启动Internet Explorer并将URL直接传递给程序。 我觉得更好(更以用户为中心)的方法是在用户的默认Web浏览器中启动链接。

我们仍然为RichTextBox控件的LinkClicked事件设置了一个事件处理程序,但有一些更改。 这是完整的代码:

 // Event raised from RichTextBox when user clicks on a link: private void richTextBox_LinkClicked(object sender, LinkClickedEventArgs e) { LaunchWeblink(e.LinkText); } // Performs the actual browser launch to follow link: private void LaunchWeblink(string url) { if (IsHttpURL(url)) Process.Start(url); } // Simple check to make sure link is valid, // can be modified to check for other protocols: private bool IsHttpURL(string url) { return ((!string.IsNullOrWhiteSpace(url)) && (url.ToLower().StartsWith("http"))); } 

正如MSDN文章所述,默认情况下启用RichTextBox控件的DetectUrls属性,因此任何有效的http / https URL将自动显示为带下划线的超链接。