为什么VB6 FlexGrid会抛出运行时错误381'下标超出范围'?

时间:2015-06-11 12:31:53

标签: vb6 msflexgrid

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

网格有3行3列。 当双击第一行中的任何列时,它可以正常工作。但是当我遇到其他人时,它会抛出一个错误。错误说:

  

运行时错误'381':

     

下标超出范围。

它当前在以下行崩溃,其中行为2且col为3:

TextMatrix = myFlexGrid.TextMatrix(row, col)

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

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

1 个答案:

答案 0 :(得分: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

您可以在运行时使用" Locals"获取有关任何控件(或变量)的大量信息。 IDE的窗口,暂停执行。不幸的是,这似乎并不包括flexgrid的细胞内容。您可以随时使用“立即”窗口感受网格,使用? FlexGrid.TextMatrix(0,2)之类的行来查找导致错误的值和限制。