| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1273 人关注过本帖, 4 人收藏
标题:VFP9 combox 的BUG,CCB2000在VFP10中已修复。谁有简单的绕过这个BUG的方法 ...
只看楼主 加入收藏
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:769
专家分:3010
注 册:2018-3-13
收藏
得分:0 
以下是引用cssnet在2025-4-8 14:15:58的发言:
我敢打赌,你的所谓idea,无非是四处乱加:

不要轻易怀疑他人的能力,话说死了赌输会很没面子的

这家伙很懒,啥也没留下
5 天前 14:48
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:533
专家分:1313
注 册:2010-1-11
收藏
得分:0 
用AddOJect()方式添加控件,感觉出现错误概率大大降低。
5 天前 14:59
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:362
专家分:335
注 册:2013-10-4
收藏
得分:0 
以下是引用csyx在2025-4-8 14:48:54的发言:

不要轻易怀疑他人的能力,话说死了赌输会很没面子的




为避免我老人家打赌输了会“很没面子”,这样子吧,折中一下,我删掉当中带私人标志的“独门秘笈”,只发一个解决方案的残缺版“半成品”上来;至于如何将它完善一下,弄得流畅妥帖,那就是你们年轻气盛的小伙儿们的事啦——

Good luck!

combo_bug.rar (2.69 KB)


收到的鲜花
  • kangss5 天前 17:21 送鲜花  1朵  
5 天前 15:06
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:769
专家分:3010
注 册:2018-3-13
收藏
得分:0 
以下是引用cssnet在2025-4-8 15:06:45的发言:
发一个解决方案的残缺版“半成品”

不错的方案

这家伙很懒,啥也没留下
5 天前 16:09
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:769
专家分:3010
注 册:2018-3-13
收藏
得分:0 
这是我前面说的模拟点击方案。我测试了几次好像没问题,尚待多方测试才知是否真能解决问题
combo_bug.rar (6.23 KB)


又多测试了几次,点击表单的方法不太可靠,我把计时器的间隔频率改成 500ms,有时能看到组合框的值停顿了一下才变(鼠标点击起了作用),也有几次没更新(鼠标点击没起作用)
cssnet 33楼给出的方案应该更可靠,就是要处理的情形有点多,不同的 RowSourceType、BoundColumn ... 都要考虑
上面这个 ctls.cbo 类中唯一可用的是 CloseUp 事件,例如:把 cssnet 在表单 Paint 事件中的代码转到这,Paint 的系统开销较大



[此贴子已经被作者于2025-4-8 18:01编辑过]

收到的鲜花
  • kangss5 天前 17:51 送鲜花  1朵  

这家伙很懒,啥也没留下
5 天前 16:13
凝聚双眼
Rank: 2
等 级:论坛游民
帖 子:50
专家分:43
注 册:2023-12-1
收藏
得分:0 
以下是引用csyx在2025-4-4 19:23:54的发言:

实例截图是这样


我不想用 list,因为 list 的位置受限于当前表单位置和尺寸,除非表单最大化,上面截图中菜单高度就超出表单下边界


这个下拉好漂亮,还有 对勾 ,能否分享个简单的示例。
5 天前 16:44
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:769
专家分:3010
注 册:2018-3-13
收藏
得分:0 
以下是引用凝聚双眼在2025-4-8 16:44:48的发言:
能否分享个简单的示例。

这个弹出菜单是很久以前倦猫发布的一个开源类,去这里下载:https://

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2025-4-8 17:18编辑过]


这家伙很懒,啥也没留下
5 天前 17:13
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:318
专家分:732
注 册:2014-6-12
收藏
得分:0 
以下是引用cssnet在2025-4-8 15:06:45的发言:





为避免我老人家打赌输了会“很没面子”,这样子吧,折中一下,我删掉当中带私人标志的“独门秘笈”,只发一个解决方案的残缺版“半成品”上来;至于如何将它完善一下,弄得流畅妥帖,那就是你们年轻气盛的小伙儿们的事啦——

Good luck!


刚刚测试这种方案:再放上一个下拉列表框的combo2,数据源用“值”,如果不在thisform.pait里面增加 = 的话,点击 combo2 展开的list选项时,值不会变。
增加 thisform.refresh,可以解决
但是 thisform.pait 里面增加哪一行代码,当前 VFP9 的CPU占用直接上升到 20% 以上,不会停止。在这里写代码,需要特别注意。
5 天前 17:42
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:362
专家分:335
注 册:2013-10-4
收藏
得分:0 
以下是引用csyx在2025-4-8 16:13:26的发言:
这是我前面说的模拟点击方案。我测试了几次好像没问题,尚待多方测试才知是否真能解决问题


这个方案相当漂亮!之前我随手加的那一行代码,就是嫌它会卡顿,不太流畅。
只是,下拉选单弹出后,启动定时器一直侦测,可能较占用系统资源,能否再折中一下:

在thisform.paint事件中,加一个判断:if 下拉选单已收起,then 给comboBox赋值, else do nothing。那样可能就不会卡顿,而且,可能也不需要Timer。

5 天前 17:46
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:318
专家分:732
注 册:2014-6-12
收藏
得分:0 
以下是引用csyx在2025-4-8 16:13:26的发言:

这是我前面说的模拟点击方案。我测试了几次好像没问题,尚待多方测试才知是否真能解决问题

这个方案,初测可以,我再详细测试测试,之前做个的给窗口发送鼠标点击消息必须是顶层表单才会有效放弃了。
不知道编译成exe后效果如何。
5 天前 17:51
快速回复:VFP9 combox 的BUG,CCB2000在VFP10中已修复。谁有简单的绕过这个BUG的 ...
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019763 second(s), 12 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved