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