自己做控件吧。
控件内部放一个 listbox 对象,不显示的。然后数据添加到里再进行处理 。
一、专用属性。
1、list() ,数组。对应 listbox 的属性
2、listheight ,inter ,每个单元格高
3、listwidth ,inter ,每个单元格宽。
4、listcount ,inter ,单元格计数
二、专用函数。
1、AddItem ,添加数据,以下三个都对应 listbox 的函数。
2、Clear
3、RemoveItem
4、Paint ,重绘函数
5、改变大小的事件。调用paint 函数
三、实现方法:
paint 函数:
根据 控件宽,计算出每行可以放置的 个数。
根据 每行可以放置的个数,计算总行数。
根据总行数,计算 内容区域的总高。
当总高》控件高时,需要显示一个滚动条。
控件宽度减去滚动条宽,然后重新计算 每行个数及总行数、总高。
滚动条:每次变化值:一行 和 可显示的总行数-1。最小值:1,最大值:总行数。
显示:根据总行数和每行个数。用两个 for 循环套。
滚动条有数据时,需要根据滚动条进行每行的Y值进行修正。
先画一个矩形,然后在矩形中显示 内容。 内容从 listbox 中调用。
当 计算出来的序号超过 总数据量时,只画矩形,而不显示内容,以达到最后一行满格子的目的。
没有编程环境,无法测试。