TMS的DBStringGrid组件有一个内置方法,可自动调整行高。我理解该方法工作所需的属性设置,并且在调用它时效果很好。
我想在网格显示的任何时候自动化我的网格行,我无法弄清楚方法调用的位置。我认为组件的OnCustomCellDraw事件是正确的选择,但这只会导致与无限循环相关的闪烁和内存使用(即使grid.doubleBuffering设置为true)。
如果我希望在显示网格的任何时候调用它,你会建议我将调用置于AutoSizeRows吗?
更新:Ken的答案很好,但我也发现将调用放在DataSource的OnDataChange事件中,每当数据库启动进入编辑模式时,这可能对我的目的一样好。
答案 0 :(得分: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;