如何根据单元格值在datagridview行中应用循环
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据单元格值在datagridview行中应用循环相关的知识,希望对你有一定的参考价值。
我在datagridview中循环有这个问题,我有3列。第1列,第2列和第3列。
情况是当“Column2”值等于或大于75时,“Column3”值等于“Column1”。否则“Column3”等于0。
如果“Column2”值为“IP”或“NFE”,则“Column3”值等于0。
以下是插图:
Column1 Column2 Column3
3 78 3
3 76 3
3 65 0
3 IP 0
3 NFE 0
我试过这段代码;
Private Sub DGVGRADES_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DGVGRADES.CellValueChanged
For Each row As DataGridViewRow In DGVGRADES.Rows
If row.Cells(4).Value >= 75 Then
row.Cells(0).Value = row.Cells(3).Value
ElseIf row.Cells(4).Value.ToString <= 3 Then
row.Cells(0).Value = row.Cells(3).Value
ElseIf row.Cells(4).Value < 75 Then
row.Cells(0).Value = 0
ElseIf row.Cells(4).Value = "IP" Then
row.Cells(0).Value = 0
End If
Next
End Sub
但是给我这个错误。
从字符串“IP”到“Double”类型的转换无效。
对于我的学校要求,我真的非常需要帮助。谢谢
答案
这应该是你的功课的一个简单的解决方案。但是你应该理解代码,而不仅仅是复制/粘贴答案。
Private Sub DGVGRADES_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DGVGRADES.CellValueChanged
For Each row As DataGridViewRow In DGVGRADES.Rows
If Double.TryParse(row.Cells(4).Value, Nothing) = False Then
If row.Cells(4).Value.ToString = "NFE" Then
row.Cells(0).Value = 0
ElseIf row.Cells(4).Value.ToString = "IP" Then
row.Cells(0).Value = 0
End If
Else
If row.Cells(4).Value >= 75 Then
row.Cells(0).Value = row.Cells(3).Value
ElseIf row.Cells(4).Value.ToString <= 3 Then
row.Cells(0).Value = row.Cells(3).Value
ElseIf row.Cells(4).Value < 75 Then
row.Cells(0).Value = 0
End If
End If
Next
End Sub
以上是关于如何根据单元格值在datagridview行中应用循环的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Angular 6 + Handsontable 根据另一个单元格值仅更改一个单元格值?