| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3820 人关注过本帖
标题:请教Grid如何实现各行不同的RowHeight
取消只看楼主 加入收藏
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:4 
请教Grid如何实现各行不同的RowHeight
一个日志办公软件,用Grid显示计划、总结、建议等内容(当然是Memo字段了,且有换行,故Grid中换成了EditBox显示),当然可以通过FontMetric等取得内容的高、宽去调整行高行宽,但是问题来了,一调整所有行都调了,求教如何实现每行不同的行高。谢谢。

       有用过MSHFlexGrid,能实现,但是数据超过1000条,那是太慢了,半小时以上还没调整完,100条记录都要调整5秒。所以不考虑MSHFlexGrid.
搜索更多相关主题的帖子: Grid 不同 内容 调整 MSHFlexGrid 
2018-11-22 13:23
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:0 
老大,我就是用的EditBox,现在的问题是老板要求自适应行高,各行内容有3行的有5行的,Grid有不有方法实现各行不同行高。
现有的RowHeight是会对所有行的,一调就全调了。想实现的就是第1行高25,第2行高30,第3行高49等,诸如此类,各行能各自显示完该行的内容。
2018-11-22 17:57
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:0 
GridTest.rar (7.41 KB)

附件中有个样本,就是不能实现。
上面的是MSHFlexGrid,可以调整,100条记录都要好久
下面是VFP的Grid,现在是动态依照内容调整当前行的高,当然一调所有行也调了。
2018-11-22 18:36
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:0 
回复 5楼 csyx
谢谢你的提议,这个方法确实好,固定缇到像素的转换比到1:15,减少了函数调用。
但是MSHFlexGrid是针对VB的东西,数据内部处理就是用的数组操作,反应确实太慢了,就按这样优化后也要5秒左右,不过100条记录。试想一个公司100人(实际有300多人啊),按20天上班每月,那将是2000条记录,至少是20倍于这个时间(实际可能更多,二维数组更大了),所以我不选用MSHFlexGrid。尝试修改_Grid的基类,实在找不到法门。
2018-11-22 21:11
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:0 
回复 7楼 csyx
你的思路是对的,谢谢。就是调整可见行。TopRow取置顶行号,Rows取当前可见行数,估计也就10条记录。置于宽有ScrollBar就先不管它了。
至于Scroll事件,因为MSHFlexGrid没有MouseWheel,我是把窗口(_Screen)的MouseWheel绑到了容器(Form)上,再结合Amouse()看鼠标是否在MSHFlexGrid上,不晓得会不会触发它的Scroll。

谢谢你的提醒,我先按这个思路去改。谢谢。
2018-11-23 13:24
快速回复:请教Grid如何实现各行不同的RowHeight
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.070246 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved