好吧,我知道你已經提供了代碼,但是這是我該怎麼做。
首先我們做一個Person
Class並創建一個Person List
存儲每個Person
之後,我們讀/文本文件加載到string array
,然後我們使用Linq其中逗號分割的文本文件線是否將名稱和地址分爲兩個密鑰,一個是NAME
,另一個是ADDRESS
。
一旦做到這一點,我們遍歷每個項目,並創建一個新的Person
與價值觀value.NAME
和Value.Address
的人的姓名和地址,以及添加人的名字爲combobox
最後我們添加一個ComboBox Event改變在Textbox's
文本選定ComboBox's Index
這已創建存儲每個Person
Public Class Form1
Dim People As New List(Of Person)
Private Sub ComboBox1_SelectedValueChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedValueChanged
Try
TextBox1.Text = People(ComboBox1.SelectedIndex).address
Catch
''this will prevent errors if there is a name with no address
TextBox1.Text = ""
End Try
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
''This is the location I used, feel free to change it here.
Dim location As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
Dim fileName As String = "test1.txt"
Dim path As String = System.IO.Path.Combine(location, fileName)
Dim query = From line In System.IO.File.ReadAllLines(path)
Let val = line.Split(",")
Select New With {Key .NAME = val(0), Key .ADDRESS = val(1)}
For Each value In query
Dim p = New Person(value.NAME, value.ADDRESS)
People.Add(p)
ComboBox1.Items.Add(value.NAME)
Next
''ADD OTHER COMBOBOX ITEMS HERE IF NEED BE, SO EVERYTHING IS IN ORDER
ComboBox1.Items.Add("ANDREW")
End Sub
End Class
Class Person
Public Property name() As String
Public Property address() As String
Public Sub New(name As String, address As String)
Me.name = name
Me.address = address
End Sub
End Class
編輯List of People
匹配:
這是我如何格式的文本文件。
Robert,5 BellView Road
Martin,6 BellView Road
爲什麼不使用:'File.ReadAllLines()',然後只用一個'對於每個Line'? – Mederic
當comboBox值更改時,您想要對文本框做什麼?你是否想將下一個comboBox的值加載到文本框? –
我希望它採用逗號後的值,例如,如果我在組合框中選擇Robert,我希望文本框具有5 BellView Road,但如果選擇martin,我希望它顯示6 BellView Road。 –