vb.net keyup事件

时间:2011-09-12 07:54:41

标签: vb.net

我有一个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

1 个答案:

答案 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)