有时候,我的应用程序会抛出随机索引超出范围的异常,而且我有点迷失了原因..
正如你所看到的那样,索引(thi3)在行数之下,所以我没有看到问题?
编辑:这是我声明数据表的列(在表单加载时发生)
InternalDataTable.Columns.Add("Domain")
InternalDataTable.Columns.Add("Anchor text")
InternalDataTable.Columns.Add("Status")
InternalDataTable.Columns.Add("E. Links")
InternalDataTable.Columns.Add("Thread #")
InternalDataTable.Columns.Add("Tjek", GetType(Boolean))
DataGridView1.DataSource = InternalDataTable
Edit2:我现在又收到一个错误,但是现在在图像中突出显示的行下方的行,所以问题确实是项目(x)
If InternalDataTable.Rows(thi3).Item(2) = "" Then
编辑3:再次出现错误,请参见此处的屏幕截图https://i.gyazo.com/a7cc582e4cbf33bea59a8efb9bb36497.png - (无法嵌入图片)我知道我应该发布代码,但是这张图片提供了一个视图,列和行&项目在索引范围内。
答案 0 :(得分:0)
您的代码中的问题是您可能已插入多个rows
,但您没有Columns
InternalDataTable.Rows(thi3).Item(0) = ""
.Item(0)
可能导致索引超出范围异常。
另外,我建议你改变整个if到这个:
if thi3 < InternalDataTable.Rows.Count andalso InternalDataTable.Columns.Count > 2 andalso InternalDataTable.rows(Thi3).Item(0) <> "" then
由于访问Rowcount索引,因此注意将<=
更改为<
也会生成超出范围异常的索引。