vb.net使用combodropbox填充datagridview

vb.net使用combodropbox填充datagridview,vb.net,datagridview,Vb.net,Datagridview,我从数组初始化了一个数据集。我想在datagridview上显示它。在其中,我只对数据集使用datasource属性,它正在工作。但是,其中一列需要是下拉列表,如何初始化datagridview以获得下拉列表值,然后当我将其设置为数据集时,该列上的值也会被选中。您需要向网格中添加DataGridViewComboBoxColumn。下面的代码是我用于向DataGridView添加一个视图的方法,因此这并不是您想要的,但应该可以帮助您: Public Sub AddComboBoxColumn(D

我从数组初始化了一个数据集。我想在datagridview上显示它。在其中,我只对数据集使用datasource属性,它正在工作。但是,其中一列需要是下拉列表,如何初始化datagridview以获得下拉列表值,然后当我将其设置为数据集时,该列上的值也会被选中。

您需要向网格中添加DataGridViewComboBoxColumn。下面的代码是我用于向DataGridView添加一个视图的方法,因此这并不是您想要的,但应该可以帮助您:

Public Sub AddComboBoxColumn(Dgv As DataGridView, ByVal fieldName As String, ByVal heading As String, ByVal width As Integer, ByVal DataSource As Object, Optional ByVal ValueMember As String = "Id", Optional ByVal DisplayMember As String = "Desc")
    Dim col As New DataGridViewComboBoxColumn

    With col

        .DataSource = DataSource
        .ValueMember = ValueMember
        .DisplayMember = DisplayMember

        .DataPropertyName = fieldName
        .Name = fieldName
        .HeaderText = heading
        .Visible = True
        .Width = width
        .SortMode = DataGridViewColumnSortMode.Automatic
        .ReadOnly = False
        If Not .ReadOnly Then .DefaultCellStyle.BackColor = Color.LightYellow
        .DefaultCellStyle.DataSourceNullValue = ""

    End With

    Dgv.Columns.Add(col)
End Sub

谢谢Jon,它添加了一个下拉列,然而,在调用datagridview.datasource=dataset之后,我得到了一个新的下拉列,它什么也不做。如何将新列与dataset中的某个字段关联?@Gilbert您需要将DataGridViewComboBoxColumn上的DataPropertyName属性设置为dataset中的字段名,以将其映射。