请帮帮我。我要做的是将列表框中的选定项目转移到标签中。但是每次单击列表框中的某个项目时,它都不起作用。 这是代码。
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
答案 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
创建循环中的字符串会更有效。