大家好,情况是这样的,我在VB增强搜索插件中,使用了列表重绘功能,这样可以使用不同颜色区别位置信息和匹配行,还可以用粗体显示匹配的关键字,但是,重绘的时候出现了两个问题,虽然不是很大,但是使用起来会感到不是很舒服.第一个问题是,由于VB的局限性,必须将列表的Style设为复选框才可以执行重绘,虽然可以直接判断元素的焦点状态进行绘制焦点元素的操作,但当用户定位代码的时候,列表框会失去焦点,此时列表的所有元素均是未选中状态,当然可以通过判断Selected来控制选中元素的重绘操作,但是,由于是CheckBox,所以实现起来比较麻烦(我已经通过此方式实现了),更为重要的是,有的时候,列表会显示两个元素,就是当列表刚刚获得焦点的时候,此时会同时显示焦点元素和选中元素.请问有没有好的解决方式?第二个问题是,关于列表元素很多的时候(大概2-3万个元素),此时把列表下拉到底部,然后切换其中的元素,可以看到列表在切换选中元素的速度非常的慢,请问是否可以解决呢?第三个问题是,关于在搜索过程中,列表闪动很厉害的问题,如何可以防止闪动呢?
解决方案 »
- vb控件注册信息是固定的吗?写程序生成vb代码时,怎样处理frx文件?
- VB如何读这样的TXT文件!然后转换成以豆号隔开?
- 请大家帮忙看一下,为什么 DBEngine.CompactDatabase Location, strTempFile 不执行?
- 怎样得到中文版的帮助文件制作工具。
- 关于程序运行时间问题,高手请进!
- 求助:关于VB数据库问题(ADO 访问SQLSERVER)急急急
- 旺旺号的切换
- 请问在datagrid中如何判断某一行是空的(在添加新行前)?
- 如何将一长整数形态的IP地址变为带点的十进制IP地址?
- 小问题, 我不会。 怎么执行(copy c:\abc.txt d:\abc.txt)
- 关于DataRepeater的使用方法
- 求教 如何画平行四边形或平行线
既然能重绘,那么很容易知道 ListBox 一次可以显示最多的条数(比如 10 条);
在列表框右边加一个滚动条,根据滚动信息,只在列表框中填充 10 条数据,应该没有你的问题了。
在列表失去焦点的时候记录item信息,包括长宽等等..
在列表获得焦点的时候,首先根据上次记录的item信息清空选择..
方式是通过"vbalODCL6"控件,该控件支持重绘.
但由于对中文支持的不好,需要修改其中的一处代码才可以使用.