组合框用于更新数据网格视图中的相邻单元格

时间:2014-02-09 09:56:31

标签: vb.net winforms datagridview combobox

我有一个带有组合框的datagridview,它可以查看名为products的不同表,并使我能够选择产品。我还将datagridview标记设置为在price列中查找相同的表“products”。我希望能够通过从组合框中选择产品来自动填充价格单元。问题是下面的代码将整个列更改为相同的价格。我只希望改变那一行。

我在datagridview.cellvaluechanged事件上有以下代码。顺便说一下......我用的是VB.net。拜托,没有C#答案。

    Dim price As Double = 0


    price = Recipe_DetailsDataGridView.Tag
    For Each column As DataRowView In Me.Recipe_DetailsBindingSource.List
        column!price = price

    Next

3 个答案:

答案 0 :(得分:0)

鉴于您正在循环遍历所有行,为什么您对所有行都发生变化感到惊讶?如果您只想更改一行,则只需更改一行,这不涉及循环。您正在使用的事件应该为您提供行索引,因此您可以从同一行中的相应列获取单元格,或者您可以获取绑定项目并设置相应的字段。

顺便说一下,当它表示一行时,将循环控制变量'column'命名为真有意义吗?

答案 1 :(得分:0)

这就是我所拥有的。我有一个模糊的想法,并能够完成一个消息框来显示行索引。

Dim index As Integer

    For i = 0 To Recipe_DetailsDataGridView.SelectedCells.Count - 1

        index = Recipe_DetailsDataGridView.SelectedCells.Item(i).RowIndex
        MsgBox(index, , )

答案 2 :(得分:0)

做到了!第一行我从旧的VBA项目得到它们,并根据.net简单地实现它 最后一行现在就突然出现了。

Dim index As Integer

    For i = 0 To Recipe_DetailsDataGridView.SelectedCells.Count - 1

        index = Recipe_DetailsDataGridView.SelectedCells.Item(i).RowIndex
        Recipe_DetailsDataGridView.CurrentRow.Cells(2).Value = Recipe_DetailsDataGridView.Tag