Ciao, io sto cercando di fare la stessa cosa, però i dati li prendo da un file XML.
Tieni presente che non sono molto esperto...sono riuscito a farlo in due modi, vedi tu se ti possono "ispirare" a qualcosa di utile:
File XML di esempio:
codice:
<table>
<codice>
<ID>1</ID>
<descrizione>aaaa</descrizione>
</codice>
<codice>
<ID>2</ID>
<descrizione>bbbb</descrizione>
</codice>
<codice>
<ID>3</ID>
<descrizione>cccc</descrizione>
</codice>
</table>
Metodo 1, carico contemporaneamente la combobox con gli ID e l' arraylist con la descrizione, gli Item hanno lo stesso indice quindi 0=0 1=1 ecc., però se si vuole mettere in ordine alfabetico gli ID della combobox non funziona...:
codice:
Dim descrizione As New ArrayList
Private Sub Form3_Load() Handles MyBase.Load
Dim xmlfile As New Xml.XmlDocument
xmlfile.Load(My.Computer.FileSystem.SpecialDirectories.Desktop & "/file.xml")
Dim nodo As Xml.XmlNode = xmlfile.SelectSingleNode("/table")
For a = 0 To nodo.ChildNodes.Count - 1 Step 1
ComboBox1.Items.Add(nodo.ChildNodes(a).ChildNodes(0).InnerText)
descrizione.Add(nodo.ChildNodes(a).ChildNodes(1).InnerText)
Next
End Sub
Private Sub ComboBox1_SelectedIndexChanged() Handles ComboBox1.SelectedIndexChanged
TextBox1.Text = descrizione.Item(ComboBox1.SelectedIndex).ToString
End Sub
Metodo 2, popolo la combobox con gli ID, quando seleziono un ID ciclo il file xml fino a trovare l' ID corrispondente, prendo il valore del nodo descrizione e lo metto nella textbox:
codice:
Dim xmlfile As New Xml.XmlDocument
Dim nodo As Xml.XmlNode
Private Sub Form4_Load() Handles MyBase.Load
xmlfile.Load(My.Computer.FileSystem.SpecialDirectories.Desktop & "/file.xml")
nodo = xmlfile.SelectSingleNode("/table")
For a = 0 To nodo.ChildNodes.Count - 1 Step 1
ComboBox1.Items.Add(nodo.ChildNodes(a).ChildNodes(0).InnerText)
Next
End Sub
Private Sub ComboBox1_SelectedIndexChanged() Handles ComboBox1.SelectedIndexChanged
Dim ID As String = ComboBox1.SelectedItem.ToString
For a = 0 To nodo.ChildNodes.Count - 1 Step 1
If ID = nodo.ChildNodes(a).ChildNodes(0).InnerText Then
TextBox1.Text = nodo.ChildNodes(a).ChildNodes(1).InnerText
Exit For
End If
Next
End Sub