[英]Text areas and hyperlinks?
我在Visual Studio中有两个关于C#的快速简单的问题。 首先,是否有类似标签的东西,但对于程序中的文本区域? 我希望在我的程序中有多行文本,但只能使用带有wordwrap的DotNetBar标签来完成它。
第二,有没有办法在不使用链接标签的情况下在文本中间添加超链接? 如果我想生成“可以更新,请访问http://example.com下载它”的文本,是否可以使链接可以点击而无需在文本中间放置链接标签?
//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#中,您可以通过将其拖放到表单上,将其属性更改为多行并将其设置为只读来创建普通文本框。 这就是我一直以来做的事情。
至于在没有链接标签的情况下添加文本链接。 有一种方法可以添加文本框的链接。 您可以在http://www.codeproject.com/KB/miscctrl/LinkTextBox.aspx/上查看相当不错的教程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.