为什么 VB6 FlexGrid 抛出 运行 时间错误 381 'Subscript out of range'?
Why is VB6 FlexGrid throwing a run-time error 381 'Subscript out of range'?
我不太了解 VB6
,但我目前在双击 FlexGrid
中的单元格时遇到问题。我看这是一个被问过很多次的热门问题,但是大部分用户都在围着格子转。我的更简单,但是它崩溃了。
网格有 3 行和 3 列。
双击第一行中的任何列时,它工作正常。但是当我到达其他人时,它会引发错误。错误说:
Run-time error '381':
Subscript out of range.
它当前在以下行崩溃,行为 2,列为 3:
TextMatrix = myFlexGrid.TextMatrix(row, col)
我只是想知道为什么当行和列的索引都很好时它会崩溃。我以为它可能是从零开始的,但是当点击第一行的第三个单元格时,它工作正常。
有没有办法在调试器 (Microsoft Visual Basic 6.0) 中查看网格的内容?
flexgrid 的行和列确实是基于 0 的。但是,如果您采用 FlexGrid.Row 和 FlexGrid.Col 值,那么它们将始终在范围内,因为它们表示当前选定的单元格。这样的事情应该有效:
private sub FlexGrid_DblClick()
dim CellContents as string
with FlexGrid
CellContents = .TextMatrix(.Row,.Col)
end with
end sub
尽管如果您对所选单元格感兴趣,您始终可以只使用
CellContents = FlexGrid.Text
您可以在执行时使用 IDE 的 "Locals" window 在 运行 时获取有关任何控件(或变量)的大量信息暂停。不幸的是,这似乎不包括 flexgrid 的单元格内容。不过,您始终可以使用即时 window 来感受网格,使用像 ? FlexGrid.TextMatrix(0,2)
这样的行来查找导致错误的值和限制。
我不太了解 VB6
,但我目前在双击 FlexGrid
中的单元格时遇到问题。我看这是一个被问过很多次的热门问题,但是大部分用户都在围着格子转。我的更简单,但是它崩溃了。
网格有 3 行和 3 列。 双击第一行中的任何列时,它工作正常。但是当我到达其他人时,它会引发错误。错误说:
Run-time error '381':
Subscript out of range.
它当前在以下行崩溃,行为 2,列为 3:
TextMatrix = myFlexGrid.TextMatrix(row, col)
我只是想知道为什么当行和列的索引都很好时它会崩溃。我以为它可能是从零开始的,但是当点击第一行的第三个单元格时,它工作正常。
有没有办法在调试器 (Microsoft Visual Basic 6.0) 中查看网格的内容?
flexgrid 的行和列确实是基于 0 的。但是,如果您采用 FlexGrid.Row 和 FlexGrid.Col 值,那么它们将始终在范围内,因为它们表示当前选定的单元格。这样的事情应该有效:
private sub FlexGrid_DblClick()
dim CellContents as string
with FlexGrid
CellContents = .TextMatrix(.Row,.Col)
end with
end sub
尽管如果您对所选单元格感兴趣,您始终可以只使用
CellContents = FlexGrid.Text
您可以在执行时使用 IDE 的 "Locals" window 在 运行 时获取有关任何控件(或变量)的大量信息暂停。不幸的是,这似乎不包括 flexgrid 的单元格内容。不过,您始终可以使用即时 window 来感受网格,使用像 ? FlexGrid.TextMatrix(0,2)
这样的行来查找导致错误的值和限制。