首页 文章

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

提问于
浏览
1

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

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

    显然,您的ListBox受限于DataTable并使用 DisplayMember 来显示项目 .
    在这种情况下,项目的类型为 DataRowView - 这就是您在标签中获取类型名称的原因,您需要指定将用作标签中所选项目的文本的列 .
    DataRowView具有返回底层 DataRow 对象的属性 .Row .
    使用 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 可以更有效地在循环中创建字符串 .

  • 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
    

相关问题