vb.net 教程 3-4 窗体编程 公共控件5 LinkLabel

10、LinkLabel
链接标签,说实在的,刚开始使用这个控件的时候我以为直接设置了网址,然后不用代码就可以直接访问该网页,结果却是不行的,失望啊。

LinkLabel几个特殊的属性都类似于html语句中给链接加上css:
LinkBehavior:定义了链接显示的方式。以下值之一:
AlwaysUnderline 始终显示下划线
HoverUnderline 鼠标悬停时显示下划线
NeverUnderline 从不带下划线
SystemDefault 按照系统认设置显示
ActiveLinkColor:活动链接的颜色
LinkColor:显示的颜色
VisitedLinkColor:已经访问过的链接的颜色

事件:
LinkClicked:点击标签

最基本的代码
    Private Sub LinkLabel1_LinkClicked(sender As Object,e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        Process.Start("http://www.qqrec.com")
    End Sub

也就是说,访问网页实际是靠Process.Start(以后会介绍)来访问的。

LinkLabel还有几个重要属性
LinkArea:链接区域,认是(0,text属性中字符串长度),大家可以尝试设置为别的值看看。
Links:没有在属性设置窗口内,这是一个LinkCollection类。
下面举例说明以上两个属性
text:欢迎大家访问我的网站、博客,Csdn
LinkArea:(18,0),其实就是不选择链接区域
主要代码
    Private Sub Button12_Click(sender As Object,e As EventArgs) Handles Button12.Click
        Dim links As LinkLabel.LinkCollection = LinkLabel1.Links
        Dim mylink As New LinkLabel.Link
        mylink.Name = "我的网站"
        mylink.Start = 8
        mylink.Length = 2
        mylink.Description = "我的网站"
        mylink.LinkData = "http://www.qqrec.com"
        links.Add(mylink)

        mylink = New LinkLabel.Link
        mylink.Name = "我的博客"
        mylink.Start = 11
        mylink.Length = 2
        mylink.Description = "我的博客"
        mylink.LinkData = "http://blog.csdn.net/uruseibest"
        links.Add(mylink)

        links.Add(14,4,"www.csdn.net")
    End Sub

    Private Sub LinkLabel1_LinkClicked(sender As Object,e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        Process.Start(e.Link.LinkData.ToString)
    End Sub
以上代码设置了3不同的链接区域:分别对应我的网站、我的博客、Csdn网站。
当运行时,窗口上的LinkLabel和普通标签差不多,但是当我们按下按钮后就变为带有链接标签了。而且
按下按钮后,根据不同的区域,链接的网址不同。
LinkClicked事件中e这个参数比较特殊,一是提供了点击链接时候的鼠标按键,二是代表了点击的Link。
注意从上面的代码可以看到,一个LinkLabel可以包含很多个Link的,实际使用的是已经设置的Link的LinkData属性
另外需要注意的是
(1)去掉代码中的 mylink = New LinkLabel.Link 这一行,系统会报错的。
(2)如果不是以www开头的网址要写全,加上“http://”,不然点击链接的时候会提示找不到关联程序(认是浏览器)。

学习更多vb.net知识,请参看 vb.net 教程 目录

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...