我有一个带有组合框的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
答案 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