1

TMS 的 DBStringGrid 组件有一个自动调整行高的内置方法。我了解该方法工作所需的属性设置,并且在调用它时效果很好。

我希望网格的行在显示网格时自动调整大小,但我不知道在哪里放置方法调用。我认为组件的 OnCustomCellDraw 事件将是正确的选择,但这只会导致与无限循环相关的闪烁和内存使用(即使 grid.doubleBuffering 设置为 true)。

如果我希望在显示网格的任何时候调用 AutoSizeRows,你会建议我在哪里调用它?

更新:Ken 的回答很好,但我也发现将调用放在 DataSource 的 OnDataChange 事件中,每当数据库进入编辑模式时,可能对我的目的同样有效。

4

1 回答 1

2

您可以使用父(包含)表单的OnShow事件:

procedure TForm1.FormShow(Sender: TObject);
begin
  // Make sure grid's data is available by opening the
  // dataset first, and then call your AUtoSizeRows here.
end;
于 2012-04-04T23:38:21.367 回答