Column.Index不会立即反映在TDBGrid中

时间:2011-11-14 20:37:04

标签: delphi tdbgrid

我有一个TDBGrid并且有一个通过TDataSource关联的客户端数据集。 当我尝试以编程方式重新排列网格的列时,当网格中有一列或多列时,这可以正常工作。

让我们说,我将所有列都显示为false。因此,网格还没有任何列。 现在,当我将列的索引设置为11到0时。

Columns[iColIndx].Index := iNewColIndex;
// Assume iColIndx = 11 and iNewColIndex = 0

Columns[iNewColIndex].Visible := True;
//Making the column visible

上面的列索引分配没有反映在Grid中。如果我尝试将它设置两次或三次,那么它会被反映出来。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我解决了。我已经指定了网格的OnDrawDataCell来绘制渐变,但我没有从那里调用DefaultDrawDataCell。此外,DefaultDrawing属性已关闭。

DefaultDrawing事件处理程序中设置DefaultDrawDataCell并调用DrawDataCell后,它现在正常运行。