列表框内的超链接

Hyperlinks inside ListBox

你好,有人可以帮助我完成我正在做的项目吗?不胜感激!

那么,我需要什么?很简单,我需要 linkname 条来在 LSB 列表框中实际创建一个 hyperlink。有人可以帮帮我吗??

PS: 你能不能简单点,我刚开始接触这门语言。

好的,这并不像我希望的那样简单,但请继续。我会边解释边解释

好的,下面的所有位代码都作为一个整体进入您的 Form1 class - 没有我的解释。我在这里所做的是创建一个名为 Hyperlink

的新 class

它有几个名为 NameLink 的属性和一个名为 New

Class HyperLink
    Private friendlyName As String
    Private link As String
    Public Property Name As String
        Get
            Return friendlyName
        End Get

        Set(ByVal value As String)
            friendlyName = value
        End Set
    End Property

    Public Property URL As String
        Get
            Return link
        End Get

        Set(value As String)
            link = URL
        End Set
    End Property

    Public Sub New(nm As String, ln As String)
        friendlyName = nm
        link = ln
    End Sub
End Class

我在这里创建名为 linkList 的列表 - 这将包含 hyperlinks 的列表 - 我这样做是为了稍后列表框将被设置为使用它作为列表项的来源

Dim linklist As New List(Of HyperLink)

这个名为 addLinkToListbox 的子程序实际上做了几件事。重要的是它告诉您程序在列表框的索引更改时暂时停止响应(即使您正在更改列表框的内容也会发生这种情况)

然后它将一个新的**hyperlink* 添加到 hyperlink 列表中,从 link 文本框和名称文本框获取数据。

要实际刷新文本框中显示的数据,我必须将列表框数据源更改为 nothing,然后返回 link名单

接下来的两行告诉列表框在列表框中显示 名称 属性 并且当实际单击该项目时,return URL 属性.

最后,我告诉程序在列表框索引的索引发生变化时重新开始响应。

Private Sub addLinkToListbox(linkName As String, linkURL As String)
     RemoveHandler ListBox1.SelectedIndexChanged, AddressOf ListBox1_SelectedIndexChanged
     linklist.Add(New HyperLink(linkName, linkURL))
     ListBox1.DataSource = Nothing
     ListBox1.DataSource = linklist
     ListBox1.DisplayMember = "Name"
     ListBox1.ValueMember = "URL"
     AddHandler ListBox1.SelectedIndexChanged, AddressOf ListBox1_SelectedIndexChanged
End Sub

最后两位代码很有希望是不言自明的

    Private Sub btnAddLink_Click(sender As Object, e As EventArgs) Handles btnAddLink.Click
        addLinkToListbox(txtName.Text, txtLink.Text)
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        MessageBox.Show(ListBox1.SelectedValue.ToString)
    End Sub