动态地将组合框单元添加到 datagridview

Posted

技术标签:

【中文标题】动态地将组合框单元添加到 datagridview【英文标题】:Adding a comboboxcell to datagridview dynamically 【发布时间】:2012-10-03 23:04:17 【问题描述】:

我有一个动态填充的数据网格视图。我希望根据某些条件在某些列中填充组合框。

但是我的组合框单元被添加到最底部的行而不是正确的行

谁能告诉我需要做什么?

我哪里出错了?

Private Sub dgvSteps_CellContentClick(ByVal sender As Object,
                                          ByVal e As DataGridViewCellEventArgs
                                          ) Handles dgvSteps.CellContentClick

        Dim reader = New XmlTextReader("C:\Qualcomm\" & tempNode.profilePath)
        reader.WhitespaceHandling = WhitespaceHandling.None
        reader.Read()
        reader.Read()
        reader.Read()
        dgv2.Rows.Clear()


        While reader.NodeType <> XmlNodeType.EndElement
            Dim str1 As String
            Dim str2 As String
            str1 = reader.Name
            str2 = reader.ReadElementString(str1)

            If reader.Name = "Port" Then
                Dim dgv2Cb As New DataGridViewComboBoxCell  'Create DatagridViewComboBoxCell
                Dim ports As String() = SerialPort.GetPortNames()
                Dim port As String
                For Each port In ports
                    dgv2Cb.Items.Add(port)
                Next port
                dgv2Cb.Sorted = True
                dgv2.Rows.Add(str1, str2)
                rowIndex = dgv2.RowCount  'Get the RowCount at the time of adding combobexcell, and add comboboxcell in that row

                dgv2.Rows(rowIndex).Cells(1) = dgv2Cb
            Else
                dgv2.Rows.Add(str1, str2)
                               End If
        End While
    End Sub

【问题讨论】:

【参考方案1】:

您是否将数据网格的 AutoGenerateColumns 属性设置为 false?

dgCFG.AutoGenerateColumns = false;

【讨论】:

以上是关于动态地将组合框单元添加到 datagridview的主要内容,如果未能解决你的问题,请参考以下文章

我想动态构建datagridview组合框

如何在不使用 datagridview 的情况下编辑绑定到组合框的数据表中的数据?

限制DataGridView c#中的输入

在 DataGridView 的同一列上添加多个数据源

可空类型的 datagridview 组合框下拉列表中的空值

将组合框添加到 DataGridView 标题