我有一个小问题。 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