一个FOR动态循环出错,代码如下:
intF=0
For intI = 0 To (A - intF)
If DGSearch(intI, 0) = True Then
With myTable.Rows
.RemoveAt(intI)
End With
intF += 1
End If
Next
循环次数为符合条件就减少,不知道这怎么写了?
程序修改如下:
'取得选中行的索引
DGSearch.CurrentRowIndex = 0
'取得绑定的记录数
Dim intRC As Integer = myTable.Rows.Count - 1
'删除用户已选择的记录
Do While DGSearch.CurrentRowIndex < intRC
'当索引下移时,判断该行是否往已选中
'选中则删除该行
'由于该选中行被删除,此时索引已经下移1行,实际上是刚才删除行所在的索引
'所以此时索引依然不变;
'删除该行后,绑定数据记录数则减1行,故循环应该减少执行1次;
'如果该行未被选中,则索引下移1行,此时记录数依然不变
If DGSearch(DGSearch.CurrentRowIndex, 0) = True Then
With myTable.Rows
.RemoveAt(DGSearch.CurrentRowIndex)
End With
DGSearch.CurrentRowIndex += 0
intRC -= 1
Else
DGSearch.CurrentRowIndex += 1
intRC -= 0
End If
Loop