c#文本框中的链接

时间:2008-11-26 15:11:30

标签: c# textbox hyperlink

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

由于

2 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:3)

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

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

我们仍然为LinkClicked控件的RichTextBox事件设置了事件处理程序,但稍作修改。这是完整的代码:

// 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 article状态下,DetectUrls控件的RichTextBox属性默认启用,因此任何有效的http / https网址都会自动显示为带下划线的超链接。