Ok...il datagridview è un controllo davvero utilissimo e ricco di funzioni e proprietà. Però a volte lo sto odiando...
Vi espongo il problema.
Ho un DGView con alcune colonne comboBox.
Le comboBox le popolo tramite una tabella da un DB Access in questo modo:
(DGGiornaliera è la mia DGView)
codice:
For Each colonna As DataGridViewColumn In DGGiornaliera.Columns
If TypeOf colonna Is DataGridViewComboBoxColumn Then
Dim miaCmbDG As DataGridViewComboBoxColumn = colonna
If Strings.Left(miaCmbDG.Name, 5) = "colUl" Then
For Each r As DataRow In ds.Tables("unitaLocali").Rows
miaCmbDG.Items.Add(r("codiceUnitaLocaleUnLoc"))
Next
Else
For Each riga As DataRow In ds.Tables("giustificativi").Rows
miaCmbDG.Items.Add(r("codGiu"))
Next
End If
End If
Next
Di fatto le combo vengono popolate come si deve ma se lancio l'applicazione quando cambio l'indice della combo selezionandone un item e passo a quella successiva mi genera un eccezione che non capisco:
System.ArgumentException: Valore di DataGridViewComboBoxCell non valido
Inolte mi sembra impossibile manipolare gli indici delle item selezionate di ste combo (sia ottenerli che impostarli io da codice)... Dite che è meglio creare delle combo a runtime normali invece che usare la DGView. A me piaceva perchè è ordinatissima....
PS: Le combo in questione son di tipo DropDownButton ovvero non consento inserimento di testo da parte dell'utente!