Allora, per ogni item della combo contenuta nel DataGridView ho bisogno di impostare una proprietà Tag in modo da avere l'ID dell'Item selezionato. A tal scopo utilizzo questa piccola classe:
codice:
Public Class Mylist
Private sName As String
Private iID As String
' Default empty constructor.
Public Sub New()
sName = ""
iID = ""
End Sub
Public Sub New(ByVal Name As String, ByVal ID As String)
sName = Name
iID = ID
End Sub
Public Property Name() As String
Get
Return sName
End Get
Set(ByVal sValue As String)
sName = sValue
End Set
End Property
Public Property ItemData() As String
Get
Return iID
End Get
Set(ByVal iValue As String)
iID = iValue
End Set
End Property
Public Overrides Function ToString() As String
Return sName
End Function
End Class
Se adesso vado ad aggiungere un semplice Item nella combo tutto funziona "tranquillamente" se invece uso la mia classe per caricare gli item nella combobox con un codice del genere:
codice:
Dim comboBoxCol As New DataGridViewComboBoxColumn
comboBoxCol.HeaderText = "Tipo"
comboBoxCol.Items.Add(New Mylist(CStr("aaa"), CStr("aaa1")))
comboBoxCol.Items.Add(New Mylist(CStr("bbb"), CStr("bbb1")))
comboBoxCol.Items.Add(New Mylist(CStr("ccc"), CStr("ccc1")))
DG1.Columns.Add(comboBoxCol)
quando la combo per il focus, l'item selezionato si posiziona in automatico sul primo index(cosa che, ripeto, non avviene se uso il classico comboBoxCol.Items.Add("aaa"))
Avete idea di come possa risolvere? Spero di essere stato chiaro.