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:
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: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
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"))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)
Avete idea di come possa risolvere? Spero di essere stato chiaro.
![]()

Rispondi quotando