2012-01-03 4 views
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 이벤트가 발생합니다.

실마리가 있습니까? 미리 감사드립니다.

는 :) ... 거의 2 시간 동안이 문제를 해결하기 위해 DataGridView에에 값을 설정하는

답변

1

시도를 시도하지 콤보 것이 었습니다. 여기 예 :

comboBox.DataGridView(comboBox.ColumnIndex, comboBox.RowIndex).Value = o 
+0

감사합니다. 시도해 볼게. 그러나 결국에는 셀 격자에 콤보 상자를 사용하는 기술을 사용하지 않습니다. 성능은 좋지 않습니다 (또는 어쩌면 그냥 좋은 내 코드 않았다) :) 감사합니다 Logged – swdev

관련 문제