Arrays 如何在链接标签中将数组项设置为单独的链接

Arrays 如何在链接标签中将数组项设置为单独的链接,arrays,vb.net,dictionary,combobox,linklabel,Arrays,Vb.net,Dictionary,Combobox,Linklabel,我有一个链接标签,它被设置为接收在组合框中进行选择后产生的一些URL。我试图完成的是让用户从我的组合中选择一个状态,然后能够单击链接标签中显示的各个链接 在数组中有我的链接,我得到的是数组将链接显示为“一个整体”字符串,我希望它们分开链接。以下是我所拥有的: Public arrAlabama(2) As String Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' Create

我有一个
链接标签
,它被设置为接收在
组合框
中进行选择后产生的一些URL。我试图完成的是让用户从我的组合中选择一个状态,然后能够单击链接标签中显示的各个链接

在数组中有我的链接,我得到的是数组将链接显示为“一个整体”字符串,我希望它们分开链接。以下是我所拥有的:

Public arrAlabama(2) As String
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' Create array for Alabama and add items.

    arrAlabama(0) = "http://www.rolltide.com/"
    arrAlabama(1) = "http://www.crimsontidehoops.com/"
    arrAlabama(2) = "http://centralalabamapride.org/"

End Sub

Private Sub cboSelectState_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboSelectState.SelectedIndexChanged
    ' Populate the link label.
    If cboSelectState.SelectedIndex = 0 Then
        lnklblLinkbox.Text = arrAlabama(0) _
                            & vbNewLine & arrAlabama(1) _
                            & vbNewLine & arrAlabama(2)
    End If

End Sub
我将有大约3个其他
arrStateName
类型数组,因此我的
SelectedIndex
将从
[0]
扩展到
[3]
,每个数组将包含3个URL链接

那么我在这里哪里出了问题?如果有人能让我朝着正确的方向前进,我将不胜感激。有人建议使用
字典
数据类型,但我是新手,当我尝试测试它时,我感到沮丧,因为它似乎不能产生我想要的结果。使用
TKey
TValue
会使我感到厌烦,而且我永远无法在框中显示所有链接。我使用
Integer
作为键,使用
String
作为值(链接),但无法使其工作。如能提供一些急需的指导,将不胜感激。我要做的是可能的,还是应该使用其他控件类型?

创建类对象:

Public Class StateLinks
 Public Property State As String
 Public Property Links As New List(Of String)
 Public Overrides Function ToString() As String
   'tells the combobox what to display
   Return State 
 Public Sub New(state As String)
   Me.State = state
 End Sub
End Class
将一些状态链接加载到
列表(共T个)

从所选内容中获取链接:

Private cb_selectionChanged() Handles cboSelectState.SelectedIndexChanged
  Dim state = TryCast(cb.SelectedItem, StateLinks)
  If Not state Is Nothing
    For Each link As String In state.Links
      'each link now available
    Next
  End If
添加一个RichTextBox并设置Detect URL=true、BorderStyle=None、Backcolor=form的颜色(如果它位于窗体上)。大小应该足够大,以容纳url的。然后

Private Sub cboSelectState_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboSelectState.SelectedIndexChanged
    'Populate RichTextBox1.
    If cboSelectState.SelectedIndex = 0 Then
        RichTextBox1.Text = arrAlabama(0) _
                        & vbNewLine & arrAlabama(1) _
                        & vbNewLine & arrAlabama(2)
    End If

End Sub


瓦尔特

这3个链接到哪里?你想为每一个动态创建链接标签吗?你有两个答案,是怎么回事?有什么问题吗?有点忙,抱歉。我给了你一票,因为你的答案很有用。但它的代码比我需要的更多,因为我的州列表现在已经扩展了。瓦尔特有一个很好的形式,我正在寻找使用,我可以解释我已经有。这很好,谢谢你回来。谢谢你,瓦尔特。。。这是我一直在寻找的,我可以从这个表单中构建。谢谢
Private Sub cboSelectState_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboSelectState.SelectedIndexChanged
    'Populate RichTextBox1.
    If cboSelectState.SelectedIndex = 0 Then
        RichTextBox1.Text = arrAlabama(0) _
                        & vbNewLine & arrAlabama(1) _
                        & vbNewLine & arrAlabama(2)
    End If

End Sub
Private Sub RichTextBox1_LinkClicked(sender As System.Object, e As System.Windows.Forms.LinkClickedEventArgs) Handles RichTextBox1.LinkClicked
    Dim txt As String = e.LinkText 'txt is the link you clicked
End Sub