0

我不太了解VB6,但我目前在双击 中的单元格时遇到问题FlexGrid。我可以看到这是一个被问过很多次的热门问题,但大多数用户都在围绕网格循环。我的更简单,但它崩溃了。

网格有 3 行 3 列。双击第一行中的任何列时,它工作正常。但是当我到达其他人时,它会引发错误。错误说:

运行时错误“381”:

下标超出范围。

它目前在以下行崩溃,其中行为 2,列为 3:

TextMatrix = myFlexGrid.TextMatrix(row, col)

我只是想知道为什么当行和列的索引都很好时它会崩溃。我认为它可能是从零开始的,但是当单击第一行的第三个单元格时,它可以正常工作。

有没有办法在调试器(Microsoft Visual Basic 6.0)中查看网格的内容?

4

1 回答 1

1

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”窗口在运行时获取有关任何控件(或变量)的大量信息。不幸的是,这似乎不包括 flexgrid 的单元格内容。不过,您始终可以使用“立即”窗口来感受网格周围的情况,使用线条? FlexGrid.TextMatrix(0,2)来查找导致错误的值和限制。

于 2015-06-11T14:21:34.140 回答