我有一個小問題。 DataGridViewComboBoxColumn
顯示值從ValueMember
而不是從DisplayMember
。網格工作正常,當我從這個列中選擇一些東西時,我看到DisplayMember
值,但是當焦點丟失時,網格顯示ValueMember
。我有這個代碼組合框列:爲什麼DataGridViewComboBoxColumn顯示一個ValueMember?
statusCBoxColumn.DataSource = dt 'datatable with two fields StatusId and StatusText
statusCBoxColumn.DisplayMember = "StatusText" 'is type NVarchar
statusCBoxColumn.ValueMember = "StatusId" 'is type Int
任何人都可以幫我嗎?
編輯:我解決了這個以下列方式:
Private Sub dgv_CellFormatting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles dgv.CellFormatting
If (dgv.Columns(e.ColumnIndex).Name = "statusCBoxColumn") Then
If e.Value & "" > "" Then
Dim s1 As String = e.Value
e.Value = GetData("Select StatusText from Status where ID = " & e.Value).ToString()
End If
End If
End Sub
但我不認爲這是最好的解決辦法...
是的,DataPropertyName被設置並且列被添加到datagridview。 datagridview工作正常,我可以更改此列的值,但是當我從此網格更改焦點時,它顯示ValueCommber而非ComboBoxColumn中的DisplayMember。 – wertyk