vfp的表格控件是不可能做到不同行高的,不用想了
一定要实现此功能的话,只能使用第三方控件,例如你使用的 MSHFlexGrid
唯一可能的是优化你的代码,例如你的 ResizeRowCol 做如下优化,大概可提速4倍左右
Local lnRow,lnCol,loGrd As MSHierarchicalFlexGridLib.MSHFlexGrid.6,lnWH[2],lnHeight,n,m
Local nrx, nry, ss
ss = Seconds()
Declare Long LockWindowUpdate in win32api Long
LockWindowUpdate(This.hfgrd.hWnd)
nrx = Twips2Pixels(1, 0)
nry = Twips2Pixels(1, 1)
loGrd=This.hfgrd
lnRow=loGrd.Rows-1
lnCol=3
lnHeight=0
For N=1 To lnRow
For m=1 To 3
getStringWidthHeight(loGrd.TextMatrix(N,m),@lnWH)
lnHeight=Max(lnHeight,lnWH[2])
*-- loGrd.ColWidth(m,0)=Pixels2Twips(lnWH,0)
loGrd.ColWidth(m,0) = lnWH[1] / nrx
Endfor
*-- loGrd.RowHeight(N)=Pixels2Twips(lnHeight,1)
loGrd.RowHeight(N) = lnHeight / nry
STORE 0 TO lnHeight
Endfor
LockWindowUpdate(0)
? '耗时:', Seconds() - ss
getStringWidthHeight 函数可能也能再优化一下
[此贴子已经被作者于2018-11-22 20:14编辑过]