Non so che collection usi come Datasource delle tue ComboBox, ma ipotizziamo sia un DataTable, puoi dichiarare una variabile a livelo di classe per il BindingSource (poniamo "Private bs as BindingSource") e procedere così nella Load del Form:
'Popola il controllo BindingSource
bs = New BindingSource
bs.DataSource = TuoDataTable
'Popola le ComboBox
With cbCodice
.DataSource = bs
.DisplayMember = "Codice"
.ValueMember = "Codice"
End With
With cbDescrizione
.DataSource = bs
.DisplayMember = "Descrizione"
.ValueMember = "Codice"
End With
Se devi cambiare Datasource puoi aggiungere del codice tipo questo per per aggiornare (nel punto che ritieni più opportuno):
bs.DataSource = TuoDataTable 'Dopo aver aggiornato il contenuto del DataTable
'Reimposta dati sulle ComboBox
cbCodice.DataSource = Nothing
cbCodice.DataSource = bs
cbDescrizione.DataSource = Nothing
cbDescrizione.DataSource = bs
Non importa cambiare il ValueMember e DisplayMember a meno che non sostituisci anche i nomi delle colonne del DataTable.
A questo punto puoi recuperare i dati che ti interessano dal BindingSource:
Dim s As String=CType(bs.Current, DataRow).item("NomeColonna").ToString
P.S.: Il codice l'ho scritto al volo quindi potrebbe non funzionare, ma il concetto è quello
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole