簡體   English   中英

無法以編程方式在DataGridViewComboBoxColumn中選擇一項?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM