我目前正在制作薪资系统,我正在尝试在列之间进行计算。我试图将常量值乘以名为 PayRate
的列中的值我目前有两种形式。第一种形式是我勾选所有必要的扣除和收入。完成后,将单击一个按钮,将显示包含datagridview的第二个表单以及员工详细信息和工资率。
这是我的代码:
Private Sub btnPayroll_Click(sender As Object, e As EventArgs) Handles btnPayroll.Click
myConnection.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\Users\MatMat\Documents\PBIPayrollMgmt1.accdb;"
myConnection.Open()
datagridshow()
Me.Hide()
viewPayroll.Show()
If CheckBox1.Checked Then
Try
Dim icell As Double
Dim totalpay As Double
icell = viewPayroll.DataGridView1.CurrentRow.Cells(5).Value
totalpay = icell * 11.0
viewPayroll.DataGridView1.CurrentRow.Cells(5).Value = totalpay
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End If
End Sub
它做了什么我需要但它只乘以第一行的值。如何将其应用于所有行?有没有“CurrentColumn”这样的东西?
以下图片供参考:
答案 0 :(得分:0)
但它只会乘以第一行的值
自然。您只对CurrentRow
进行计算:
相反,您需要遍历DatagridView
中的所有行并应用计算,如下所示:
For Each rowX As DataGridViewRow In dgv.Rows
rowX.Cells(5).Value = rowX.Cells(5).Value * 11.0m;
Next
此外,您需要将循环放在更合适的处理程序中,例如DataGridView.DataBindingComplete event。