文本区域和超链接

本文关键字:超链接 区域 文本 | 更新日期: 2023-09-27 18:19:06

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

第二,有没有办法在文本中间放置一个超链接而不使用链接标签?如果我想生成像"更新可用,请访问http://example.com下载它!"这样的文本,是否有可能使链接可点击,而无需在文本中间放置链接标签?

文本区域和超链接

您可以使用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!";

以上将使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";

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

void myLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    Process.Start(e.Link.Description);
}

您可以尝试RichTextBox控制。

string text = "This is the extract of text located at http://www.google.com and http://www.yahoo.com";
richTextBox1.Text   = text;
richTextBox1.ReadOnly = true;
richTextBox1.LinkClicked += (sa, ea) =>
{
 System.Diagnostics.Process.Start(ea.LinkText);
};

您可以使用正常的标签,并使AutoSize属性为false。然后调整宽度和高度它会自动换行

我假设你正在做一个windows应用程序,而不是一个web应用程序。

在c#中,你可以创建一个普通的文本框,将其拖放到窗体上,将其属性更改为多行,并将其设置为只读。我一直都是这么做的。

用于向文本中添加没有linklabel的链接。有一种方法可以向文本框添加链接。您可以在http://www.codeproject.com/KB/miscctrl/LinkTextBox.aspx/

查看一个非常好的教程。