我有一个datagridview有3列(qty,scraft factor,actuall qty)。我想要的是如果用户在数量上编码50并且在scraf因子中编码2,则实际数量将基于数量乘以2自动计算。我使用的是键盘事件。现在我使用endit来获取当前行和列的当前值,现在问题是如果要编码的数量超过一位数,它将因为endit而不接受。我必须使用什么事件?或此方案的任何解决方案。请参阅以下代码
提前感谢。
蒂尔索
Private Sub tbx_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
dgvIngredient.EndEdit()
Dim intCurrentRow As Integer = dgvIngredient.CurrentRow.Index
Dim decQuantity As Decimal
Dim decScrafFactor As Decimal
Dim decActuallQty As Decimal
decQuantity = dgvIngredient.Item(2, intCurrentRow).Value
decScrafFactor = dgvIngredient.Item(3, intCurrentRow).Value
decActuallQty = decQuantity * decScrafFactor
dgvIngredient.Item(4, intCurrentRow).Value = decActuallQty
End Sub
答案 0 :(得分:1)
对我而言,它在CellEndEdit事件中没有问题。
试试这个(一步到位):
dgvIngredient.Rows(e.RowIndex).Cells(4).Value = Convert.ToDecimal(dgvIngredient.Rows(e.RowIndex).Cells(2).Value) * Convert.ToDecimal(dgvIngredient.Rows(e.RowIndex).Cells(3).Value)