文本区域和超链接?

mow*_*ker 5 c# text hyperlink winforms

我有两个关于 Visual Studio 中 C# 的快速、简单的问题。首先,是否有类似于标签的东西,但对于程序中的文本区域?我想在我的程序中有多行文本,但似乎只能通过打开自动换行的 DotNetBar 标签来完成它。

其次,有没有什么方法可以在不使用链接标签的情况下在文本中间添加超链接?如果我想生成诸如“有可用更新,请访问http://example.com下载它!”之类的文本,是否可以使链接可点击而无需在文本中间放置链接标签?

key*_*rdP 6

您可以使用LinkLabel并设置其LinkArea属性:

 //LinkArea (start index, length)
 myLinkLabel.LinkArea = new LinkArea(37, 18);
 myLinkLabel.Text = "An update is available, please visit http://example.com to download it!";
Run Code Online (Sandbox Code Playgroud)

以上将创建http://example.com一个链接,而其余文本正常。

编辑以回答评论:有多种处理链接的方法。一种方法是为链接提供描述(URL),然后使用 Process.Start 启动 URL。

myLinkLabel.LinkArea = new System.Windows.Forms.LinkArea(37, 18);
myLinkLabel.LinkClicked += new LinkLabelLinkClickedEventHandler(myLinkLabel_LinkClicked);
myLinkLabel.Text = "An update is available, please visit http://example.com to download it!";       
myLinkLabel.Links[0].Description = "http://example.com";
Run Code Online (Sandbox Code Playgroud)

事件处理程序可以读取描述并启动站点:

void myLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    Process.Start(e.Link.Description);
}
Run Code Online (Sandbox Code Playgroud)