Ho una combo chiamata ambAggregati in una form chiamata DoppiaCombo, nell'evento Form_Load aggiungo due items:
codice:
 
Private Sub DoppiaCombo_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
	Dim i As Integer
        cmbAggregati.Items.Add("Agg_1")
        cmbAggregati.Items.Add("Agg_2")
End Sub
Poi ho una seconda combo, chiamata cmbEdif, che riempio associandogli come DataSource un arrayList dichiarato globalmente, quando scatta l'evento cmbAggregati_SelectedIndexChanged:
codice:
Dim arrEdifici As New ArrayList

Private Sub cmbAggregati_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbAggregati.SelectedIndexChanged
        Dim i As Integer
        If cmbAggregati.SelectedIndex <> -1 Then
            If cmbAggregati.SelectedIndex = 0 Then
                arrEdifici.Clear()
                cmbEdif.DataSource = Nothing
                cmbEdif.Items.Clear()
                cmbEdif.Refresh()

                For i = 0 To 4
                    arrEdifici.Add("Edificio_" & (i + 1))
                Next

                cmbEdif.DataSource = arrEdifici
                cmbEdif.DisplayMember = "ItemCombo"

                cmbEdif.SelectedIndex = -1
            End If

            If cmbAggregati.SelectedIndex = 1 Then
                arrEdifici.Clear()
                cmbEdif.DataSource = Nothing
                cmbEdif.Items.Clear()
                cmbEdif.Refresh()

                For i = 0 To 2
                    arrEdifici.Add("Edifi_" & (i + 1))
                Next

                cmbEdif.DataSource = arrEdifici
                cmbEdif.DisplayMember = "ItemCombo"

                cmbEdif.SelectedIndex = -1
            End If
        End If
End Sub
Come si nota dal codice se ho selezionato il primo valore della cmbAggregati, l'arrEdifici assume dei valori, altrimenti altri.

Poi nell'evento cmbEdif_SelectedIndexChanged mi faccio stampare il valore selezionato della cmbEdif:
codice:
Private Sub cmbEdif_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbEdif.SelectedIndexChanged
        If cmbEdif.SelectedIndex <> -1 Then
            MsgBox(cmbEdif.Items(cmbEdif.SelectedIndex).ToString)
        End If
End Sub
Il problema è questo che quando nella cmbAggregati seleziono il primo valore e poi nella cmbEdifici seleziono l'items con valore edificio_4 o edificio_5 e dopo seleziono dalla cmbAggregati il secondo valore e nella cmbEdif seleziono uno dei tre valori, succede che mi fa la msgbox correttamente, ma quando esce dalla sub cmbEdif_SelectedIndexChanged mi da errore sul form dicendomi ArgumentOutOfRangeException. AIUTO!!!!