0

到目前为止,这是我的代码,我有一个列表框,显示从文本文件中读取的名称。然后我有两个文本框:txtName 和 txtPhone。当名称在列表框中突出显示时,它应该在 txtName 中显示名称,在 txtPhone 中显示电话号码,但它不能正常工作。任何帮助表示赞赏。

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim memberphones() As String = IO.File.ReadAllLines("memberphones.csv")
        Dim query = From line In memberphones
                    Let data = line.Split(","c)
                    Let name = data(0)
                    Let phone = data(1)
                    Select name
        lstOutput.DataSource = query.ToList
        txtName.Text = Name
        txtPhone.Text = phone
    End Sub

End Class

这是我的文本文件的内容:Carol Preiss,587-2333 Alice Rees,860-9744 Carlos Sanchez,209-4587 John Smith,576-2988

4

2 回答 2

1

创建一个类来保存值并使您的查询创建该类的实例:

Public Class Form1

    Public Class Record
        Public Name As String
        Public Phone As String

        Public Overrides Function ToString() As String
            Return Name
        End Function
    End Class

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim query = From line In IO.File.ReadAllLines("memberphones.csv")
                    Let data = line.Split(","c)
                    Select New Record() With {.Name = data(0), .Phone = data(1)}
        lstOutput.DataSource = query.ToList
    End Sub

    Private Sub lstOutput_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles lstOutput.SelectedIndexChanged
        If lstOutput.SelectedIndex <> -1 Then
            Dim rec As Record = lstOutput.SelectedItem
            txtName.Text = rec.Name
            txtPhone.Text = rec.Phone
        End If
    End Sub

End Class
于 2013-11-03T08:57:40.630 回答
0

当列表框selectionchanged时,为它获取一个事件处理程序。在事件处理程序中,您可以获得实际的选定项及其属性。将事件处理程序中的这些属性添加到两个文本框

如果您已准备好,但仍有问题,请检查您的变量。他们都有正确的价值观吗?

于 2013-11-03T07:48:59.523 回答