列表框内的超链接
Hyperlinks inside ListBox
你好,有人可以帮助我完成我正在做的项目吗?不胜感激!
那么,我需要什么?很简单,我需要 link 和 name 条来在 LSB 列表框中实际创建一个 hyperlink。有人可以帮帮我吗??
PS: 你能不能简单点,我刚开始接触这门语言。
好的,这并不像我希望的那样简单,但请继续。我会边解释边解释
好的,下面的所有位代码都作为一个整体进入您的 Form1 class - 没有我的解释。我在这里所做的是创建一个名为 Hyperlink
的新 class
它有几个名为 Name 和 Link 的属性和一个名为 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
那么,我需要什么?很简单,我需要 link 和 name 条来在 LSB 列表框中实际创建一个 hyperlink。有人可以帮帮我吗??
PS: 你能不能简单点,我刚开始接触这门语言。
好的,这并不像我希望的那样简单,但请继续。我会边解释边解释
好的,下面的所有位代码都作为一个整体进入您的 Form1 class - 没有我的解释。我在这里所做的是创建一个名为 Hyperlink
的新 class它有几个名为 Name 和 Link 的属性和一个名为 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