[英]Can't programmatically select an item in DataGridViewComboBoxColumn?
我有一個DataGridView,並且已經能夠向其中添加DataGridViewComboBoxColumn。 它使用自定義ValueDescriptor類從數據庫StoredProcedure中讀取數據,這是它的代碼:
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事件。
有什么線索嗎? 提前非常感謝您。
已經嘗試解決了將近兩個小時... :)
嘗試將值設置為DataGridView而不是ComboBox。 這里是一個例子:
comboBox.DataGridView(comboBox.ColumnIndex, comboBox.RowIndex).Value = o
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.