2011-09-12 63 views
0

我有一个datagridview有3列(数量,scraft因素,执行数量)。我想要的是,如果用户在qty中编码50,在scraf中编码为2,实际上qty将根据qty乘以2自动计算。我正在使用keyup事件。现在我正在使用endingit来获取当前行和列的当前值,现在的问题是如果要编码的数量超过一个数字,它将因为结束而不会接受。我必须使用哪个事件?或者这个场景的任何解决方案。请参阅下面的代码vb.net keyup事件

在此先感谢。

蒂尔索

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

对我来说,工作没有在CellEndEdit事件的问题。

尝试这种(都在1步):

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)