0
我有一個DataGridView,並且已經能夠將DataGridViewComboBoxColumn添加到它。上面寫着使用自定義ValueDescriptor類從數據庫StoredProcedure的數據,這是它的代碼:無法以編程方式在DataGridViewComboBoxColumn中選擇一個項目?
Shared Sub fillComboBoxCellUsingSP(ByVal comboBox As DataGridViewComboBoxColumn, ByVal proc_name As String, ByVal param As Object(), ByVal firstitem As String)
Dim dt As New DataTable
Utils.executeSP(proc_name, param, dt)
If comboBox.DataSource IsNot Nothing Then
comboBox.DataSource = Nothing
End If
comboBox.Items.Clear()
Dim VDP_Array As New ArrayList
VDP_Array.Add(New ValueDescriptionPair(Nothing, firstitem))
For Each row As DataRow In dt.Rows
VDP_Array.Add(New ValueDescriptionPair(row(0), row(1)))
Next
With comboBox
.DisplayMember = "Description"
.ValueMember = "Value"
.DataSource = VDP_Array
End With
dt.Dispose()
End Sub
它可以顯示正常的數據,但我無法選擇它以編程方式,使用這種方法:
Shared Sub selectInComboDataGrid(ByVal comboBox As DataGridViewComboBoxCell, ByVal value As String)
For Each o As ValueDescriptionPair In comboBox.Items
If o.Value IsNot Nothing AndAlso o.Value.ToString.Equals(value) Then
comboBox.Value = o
Exit For
End If
Next
End Sub
實際上,讀取comboBox.Value = o
的行是可以的。但仍然,組合框單元格不顯示該值。只是空着。有時會引發DataError事件。
有沒有這方面的線索? 非常感謝你提前。
一直試圖解決這個近兩小時... ... :)
謝謝。我會試試看。但是,最終我放棄了在單元網格中使用組合框的技術。雖然性能不好(或者也許只是我的代碼不好):)謝謝 – swdev 2012-01-15 18:59:09