Vb.net DataGridView组合框列

Vb.net DataGridView组合框列,vb.net,datagridview,combobox,datatable,Vb.net,Datagridview,Combobox,Datatable,我有一个由数据集填充的datagridview。我试图添加3列,其中包含comboboxs和它们自己的数据源,这也是一个数据集 在这里删除CRUD控件是我尝试添加combobox列的方式 Private Sub GenComboBoxColumns() Dim priorityTypesDS As New DataSet() Dim serviceBoardsDS As New DataSet() Dim serviceTypesDS As New DataSet()

我有一个由数据集填充的datagridview。我试图添加3列,其中包含comboboxs和它们自己的数据源,这也是一个数据集

在这里删除CRUD控件是我尝试添加combobox列的方式

Private Sub GenComboBoxColumns()
    Dim priorityTypesDS As New DataSet()
    Dim serviceBoardsDS As New DataSet()
    Dim serviceTypesDS As New DataSet()

    priorityTypesDS = _objhost.GetDataSet("SELECT DISTINCT abc FROM foo ORDER BY abc")
    serviceBoardsDS = _objhost.GetDataSet("SELECT DISTINCT abc FROM bar ORDER BY abc")
    serviceTypesDS = _objhost.GetDataSet("SELECT DISTINCT abc, xyz FROM foobar ORDER BY xyz")


    If dataGridView_monitorMapping IsNot Nothing AndAlso dataGridView_monitorMapping.Rows.Count > 0 Then
        Dim col_priority As New DataGridViewComboBoxColumn
        Dim col_serviceBoard As New DataGridViewComboBoxColumn
        Dim col_serviceType As New DataGridViewComboBoxColumn

        col_priority.DataSource = priorityTypesDS
        col_serviceBoard.DataSource = serviceBoardsDS
        col_serviceType.DataSource = serviceTypesDS

        dataGridView_monitorMapping.Columns.AddRange(col_priority, col_serviceBoard, col_serviceType)

    End If
端接头

然而,我实际上生成了许多列,这些列在datagridview中包含的视图区域中超过7列!当他们的年龄应该只有3岁

为了帮助您理解我试图实现的目标,请看下面的示例。想象一个组合框及其相应的选项,例如foo*Bar*FooBar*=>一个包含3个选项的组合框

---------------------------------------------------------------------------------
|Apple          | (plant*animal) |  (blue*green*red*etc)  |     (smooth*rough*) |
|Steak          | (plant*animal) |  (blue*green*red*etc)  |     (smooth*rough*) |
|Peach          | (plant*animal) |  (blue*green*red*etc)  |     (smooth*rough*) |
---------------------------------------------------------------------------------

一如既往;非常感谢您的帮助=

所以问题是它向网格中添加的列比预期的要多?额外的列是重复的还是其他的?您从何处调用GENCOMBOX列?GENCOMBOX在多个位置被调用;每当主datagridview被同步清除并重新填充新数据时,需要在同步时将列重新创建到现在已清除的表中。我不仅得到了比我需要的更多的专栏;它们甚至没有填充在内部表中包含正确信息的数据集。我打赌这是一个循环问题;不过,我认为comboboxs至少会填充正确的数据。我会给出列名称,并在添加它们之前检查它们是否已经存在于网格中,以确保它们只加载一次。您可以尝试设置DataGridViewComboBoxColumn的.DisplayMember和.ValueMember属性,看看这是否有助于填充。当您说“未填充”时,它们是否没有值,或者值是否错误?