是否可以使用带有文本和可点击链接的Label控件?

时间:2012-08-01 10:26:08

标签: .net winforms hyperlink label

我需要显示几行文字,其中的网址格式为链接(即蓝色,带下划线等),并在点击时在浏览器中加载适当的网站。

示例:

  

我强烈推荐的第一个网站是StackOverflow,另一个是ServerFault

我知道我可以使用多个LabelLinkLabel控件,但这是唯一的方法吗?可以通过一个控件来实现吗?

2 个答案:

答案 0 :(得分:2)

您可以使用LinkLabel控件:

  

LinkLabel控件类似于Label控件,但它可以显示超链接。可以在控件的文本中指定多个超链接。每个超链接都可以在应用程序中执行不同的任务。例如,您可以使用超链接在Microsoft Internet Explorer中显示网站或加载与应用程序关联的日志文件。

使用起来有点尴尬,例如IIRC使用内容的索引和范围来定义链接,这使得它可以使用可本地化的文本变得有点复杂,但它实现了它在锡上所说的内容。

答案 1 :(得分:0)

适当配置的RichTextBox控件允许实现此目的 - 更改以下属性的默认值:

  • BorderStyle设为BorderStyle.None
  • ReadOnly设为true
  • ScrollBars设为RichTextBoxScrollBars.None

此时控件看起来像一个标签,但是当鼠标悬停在它上面时光标将变为IBeam,文本框将允许选择文本 - 为避免这种情况,您需要覆盖以下事件:

  • SelectionChanged - 取消选择文字,
  • GotFocus - 将焦点返回到父级,
  • MouseEnter - 将光标更改回Cursors.Arrow