在VB.Net中将数据从列表框链接到标签

时间:2016-01-07 06:00:39

标签: vb.net winforms listbox label

请帮帮我。我要做的是将列表框中的选定项目转移到标签中。但是每次单击列表框中的某个项目时,它都不起作用。 这是代码。

Private Sub lbClients_SelectedIndexChanged(sender As Object, e As EventArgs)     
            Handles lbClients.SelectedIndexChanged

      For i = 0 To lbClients.SelectedItems.Count -1
           Label1.Text &= lbClients.SelectedItems.Item(i).ToString() & " "
      Next


End Sub

我收到了错误的照片。

This is what it looks like. The one with the Client name label.

请帮帮我。我知道这并不难。但我一直在寻找答案,它仍然是那样的。我刚接触vb.net,对不起。谢谢你

以下是我用来填充列表框的代码。

Private Sub ListBoxClients()
    Dim connection As New SqlConnection("Data Source=EURIZZE-PC;Initial Catalog=INTERTRANS;Integrated Security=True")
    Dim SQLDA As New SqlDataAdapter("Select * FROM CLIENTS", connection)
    Dim dt As New DataTable


    connection.Open()
    SQLDA.Fill(dt)
    lbClients.DataSource = dt
    lbClients.ValueMember = "User_"
    lbClients.DisplayMember = "Clientname"
    connection.Close()
End Sub

2 个答案:

答案 0 :(得分:0)

ListBox.SelectedItems返回当前所选项目的集合。

循环遍历列表框的SelectedItems集合。

例如代码:

Dim text As String = ""

For Each item As System.Data.DataRowView In lbClients.SelectedItems
    text &= item.Row.Field(Of String)(0) & ", "
Next
Label1.Text = text

答案 1 :(得分:0)

显然,您的ListBox与DataTable绑定,并使用DisplayMember来显示项目 在这种情况下,项目的类型为DataRowView - 这就是您在标签中获取类型名称的原因,您需要指定将用作标签中所选项目的文本的列。
DataRowView具有返回基础.Row对象的属性DataRow 使用lbClients.DisplayMember的值必须显示与ListBox中的项目相同的文本

Dim text As New StringBuilder()
For Each item As DataRowView in lbClients.SelectedItems
    text.Append(item.Row.Field(Of String)(lbClients.DisplayMember))
    text.Append(" ")
End For
Label1.Text = text.ToString()

使用StringBuilder创建循环中的字符串会更有效。