我需要显示几行带有格式为链接(即蓝色、下划线等)的 URL 的文本,并在单击时在浏览器中加载适当的站点。
例子:
我强烈推荐的第一个站点是StackOverflow,另一个是ServerFault。
我知道我可以使用多个Label
和LinkLabel
控件,但这是唯一的方法吗?可以通过单个控件来实现吗?
我需要显示几行带有格式为链接(即蓝色、下划线等)的 URL 的文本,并在单击时在浏览器中加载适当的站点。
例子:
我强烈推荐的第一个站点是StackOverflow,另一个是ServerFault。
我知道我可以使用多个Label
和LinkLabel
控件,但这是唯一的方法吗?可以通过单个控件来实现吗?
您可以为此使用LinkLabel
控件:
LinkLabel 控件与 Label 控件类似,不同之处在于它可以显示超链接。可以在控件的文本中指定多个超链接。每个超链接可以在应用程序中执行不同的任务。例如,您可以使用超链接在 Microsoft Internet Explorer 中显示网站或加载与应用程序关联的日志文件。
使用起来有点尴尬,例如 IIRC 链接是使用索引和内容范围定义的,这使得可本地化的文本有点复杂,但它确实做到了。
适当配置RichTextBox
的控件允许实现这一点 - 更改以下属性的默认值:
BorderStyle
为BorderStyle.None
,ReadOnly
为true
,ScrollBars
为RichTextBoxScrollBars.None
.此时控件看起来像一个标签,但是当鼠标IBeam
悬停在它上面时光标会变成 ,并且文本框将允许选择文本 - 为避免这种情况,您需要覆盖以下事件:
SelectionChanged
- 取消选择文本,GotFocus
- 将焦点返回给父母,MouseEnter
- 将光标改回Cursors.Arrow
。