把这段代码放在保存按钮下面,发现表位空表的时候(删去全部行的状态),会提示错误
错误提示如下:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:自定义函数,同步选定行
详细错误信息:
调用的目标发生了异常。
索引超出范围。必须为非负值并小于集合大小。
参数名: index
源代码如下:
'此函数的目的是针对当前表,选中一定的区域,然后程序会判断选定的行,分别对每一行进行同步操作
Dim tb As Table = CurrentTable
If tb IsNot Nothing Then ' 判断表是不是为空
' 检查选定行的范围是否有效,并且确保索引在表格行数范围内
If tb.TopPosition >= 0 AndAlso tb.BottomPosition >= 0 AndAlso tb.TopPosition <= tb.BottomPosition AndAlso tb.BottomPosition < tb.Rows.Count Then
For i As Integer = tb.TopPosition To tb.BottomPosition
' 检查索引是否在有效范围内
If i >= 0 AndAlso i < tb.Rows.Count Then
Dim dr As Row = tb.Rows(i)
' 检查行是否有效
If dr IsNot Nothing Then
dr.Load()
End If
End If
Next
Else
popmessage("选定行的范围无效或表格中没有有效的行。")
End If
Else
popmessage("表格为空。")
End If
我测试没有问题呀,做个例子发过来看看。另外代码没有必要搞那么复杂,有些判断是没有必要的
Dim tb As Table = CurrentTable
If tb.Rows.Count > 0 Then ' 判断表是不是为空
' 检查选定行的范围是否有效,并且确保索引在表格行数范围内
If tb.TopPosition >= 0 AndAlso tb.BottomPosition >= 0 Then
For i As Integer = tb.TopPosition To tb.BottomPosition
tb.Rows(i).Load()
Next
Else
popmessage("选定行的范围无效或表格中没有有效的行。")
End If
Else
popmessage("表格为空。")
End If