新开一个Form,内有一StringGrid,在Form.Active事件中写入下列代码:
1.StringGrid.Font:=mainFrm.dbgrid1.Font;
2.StringGrid.Color:=mainFrm.DBGrid1.Color;
3.StringGrid.DefaultRowHeight:=sgd.Canvas.TextHeight('a')+4;如果没有第三句由于字体较大,StringGrid的行高不够,所以只能看到部分字符,
如果有了第三句则显示的是StringGrid缺省的行高。关闭这个form再打开句3就起作用了,即显示正常了。请问:
如何在第一次打开时就起作用????

解决方案 »

  1.   

    可能没说明白:
    1.因为行高不固定,要根据StringGrid设置的字体的大小来确定
    2.想所有的行高都要设置。其实完成这个任务:
    用StringGrid来取得正在使用的DBGrid的字体和背景,然后在StringGrid上设置字体和背景用以演示设置情况,如果用户感觉可以的话,则改变DBGrid的字体和背景,现在就是如果取得的字体字很大,StringGrid显示不全,所以要改变行高。
      

  2.   

    其实用一个很笨的办法可解决:放一Timer,但是土啊土!!!!!!!!
    所以想寻找合理的解决方法。
      

  3.   

    解决:
    在显示新的Form之前设置行高即可。
    这么简单啊?