清除并添加项目到DataGridViewComboBox但仅适用于选定的行,而不是整个列

时间:2015-07-17 22:46:15

标签: vb.net datagridviewcombobox datagridviewcomboboxcell

DataGridViewComboBox上有几个帖子,但他们没有涵盖这个具体案例。 我有一个鞋子计费表格中的DGV,前三列是组合框。第一,对于模型;第二,对于Color;第三,对于Number。 因为我希望人们只在CellValueChanged中出售库存中的东西;取决于ColumnIndex我清除下一个组合并插入相应的项目。简单的例子,我有" Nike Pegassus"在第一个组合中,我选择" Green"在第二个,我选择该模型和颜色的所有可用数字,并在我清除其中的项目之后将其插入第三列,以防选择了另一种颜色。这是代码的一部分

If e.RowIndex >= 0 Then
    If e.ColumnIndex = 0 Then
        Dim objColumna As DataGridViewComboBoxColumn = dtgDetalle.Columns(1)
        Dim colItems As New Collection
        Dim Dattabla As DataTable
        Dim objColor As New clsColor(objObjeto.Sesion)
        Dattabla = objColor.BuscarTodos("CodColor IN (select distinct Stock.CodColor from Stock inner join Color on Stock.CodColor = Color.CodColor where Stock.Cantidad > 0 AND Stock.CodModelo=" & CType(objColumna.Items(dtgDetalle.Rows(e.RowIndex).Cells(0).Value), clsElementoListaFactura).Codigo & ")")
        objColor = Nothing
        objColumna = dtgDetalle.Columns(1)
        objColumna.Items.Clear()
        dtgDetalle.Rows(e.RowIndex).Cells(1).Value = Nothing
        dtgDetalle.Rows(e.RowIndex).Cells(2).Value = Nothing

        For Each darRecord In Dattabla.Rows
            objColor = New clsColor(objObjeto.Sesion)
            objColor.Codigo = darRecord.item("CodColor").ToString
            Dim objElemento As New clsElementoListaFactura(darRecord.item("Color").ToString, objColumna.Items.Count, "C", CInt(darRecord.item("CodColor").ToString), "1")
            objColumna.Items.Add(objElemento)
            objColor = Nothing
        Next

        objColumna.ValueMember = "ItemData"
        objColumna.DisplayMember = "Name"

. . . . . .

这只适用于一行! 当我进入第2行并更改第一个组合的索引时,我只想改变Combos(1,1)和(1,2),但我也得到(0,1)和(0,2) )清除并插入新值。 清除列中特定行的项目,然后仅在该单元格中插入项目的最佳方法是什么? 如果我不清楚,请询问。这真的开始变得痛苦。 谢谢!

0 个答案:

没有答案