滚动

时间:2016-02-16 13:49:27

标签: tstringgrid

我有这个问题:

我需要在字符串网格中隐藏一行,所以我只是做了类似的事情:

StringGrid.RowHeights [StringGrid.Row]:= 0;

所以这基本上将行高设置为0并且它看起来是隐藏的。但是在我这样做之后,如果我尝试滚动,我得到一个"网格索引超出范围"。如果我点击另一个单元格,滚动后错误不会显示。所以它只显示我隐藏它然后隐藏一行后直接滚动。

为什么会发生这种情况,我该如何解决呢?

2 个答案:

答案 0 :(得分:0)

你不应该这样做。而不是将高度设为0,你可以简单地跳过'将数据放入要隐藏的行中。

例如,您的表格如下:
a b c
d e f
并且你想要隐藏第二行,然后你说:RowCount:= RowCount-1并且根本不显示该行中的数据。
为此,您需要一个过程(让它称之为RefreshData),它将显示网格中的数据,将决定显示或不显示哪些数据行,并计算网格应该有多少行。

答案 1 :(得分:0)

我遇到了一个问题,当我尝试修改 stringgrid 上的 colcount 或 rowcount 时,我会得到网格索引超出范围错误。我调试了 grid.pas 并发现错误是因为我不小心将负的第一列的 ColWidth 属性设置为 -1,如 ColWidth[-1] = -1。这具有修改存储每列宽度列表的数组的一些内存的效果,并且在尝试添加更多列和行时,控件将表现得好像列和行不存在一样。之所以把这个放在这里,是因为我在互联网上搜索了所有内容以找到答案,但一无所获,所以也许其他人会犯同样的错误。