| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1272 人关注过本帖, 4 人收藏
标题:VFP9 combox 的BUG,CCB2000在VFP10中已修复。谁有简单的绕过这个BUG的方法 ...
只看楼主 加入收藏
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:318
专家分:732
注 册:2014-6-12
收藏
得分:0 
以下是引用丁春秋yxp在2025-4-5 23:50:51的发言:

这个bug确实存在

还是不能图省事,再用combo+listbox做一个下拉列表模式的
7 天前 20:03
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:533
专家分:1313
注 册:2010-1-11
收藏
得分:0 
我用的是7423,WIN7系统,组合框有100多项目,没看到有选择错误现象!
7 天前 22:26
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:318
专家分:732
注 册:2014-6-12
收藏
得分:0 
以下是引用星光悠蓝在2025-4-6 22:26:44的发言:

我用的是7423,WIN7系统,组合框有100多项目,没看到有选择错误现象!


0-下拉组合框
2-下拉列表框
2种模式都有这个BUG

特别是 _screen.Visible = .F.,或编译成exe时,配置文件中 SCREEN = OFF,概率极高。
没有隐藏 _screen 时,“2-下拉列表框”方式问题不大。

6 天前 19:36
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:533
专家分:1313
注 册:2010-1-11
收藏
得分:0 
回复 23楼 kangss
VFP没落了!我们也一把年纪了!

[此贴子已经被作者于2025-4-7 20:06编辑过]

6 天前 20:04
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:362
专家分:335
注 册:2013-10-4
收藏
得分:0 
以下是引用kangss在2025-4-3 17:35:48的发言:
这个例子是简单的把dbf挂接到combox上


直觉你自己说的第一句话,可能就是问题的关键。
为什么不试试:
“不要简单的把dbf挂接到combox上,而是改用Scan...endscan将dbf数据手动填充到combox上呢?”
虽然这作法有点儿“脱裤子放屁”,不过,说不定就能解决此bug,亦未可知?
呵呵。


5 天前 00:14
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:318
专家分:732
注 册:2014-6-12
收藏
得分:0 
以下是引用cssnet在2025-4-8 00:14:09的发言:
直觉你自己说的第一句话,可能就是问题的关键。
为什么不试试:
“不要简单的把dbf挂接到combox上,而是改用Scan...endscan将dbf数据手动填充到combox上呢?”
虽然这作法有点儿“脱裤子放屁”,不过,说不定就能解决此bug,亦未可知?
呵呵。

你说的这种,试过了,无效。N年前突然发现这个现象,以为自己用的方式不对,反反复复调整了很久,发现不是自己用的不对,最后报给CCB2000确认的。
简单挂上,是为了更直观的复现BUG。
采用“2-下拉列表框”模式,_screen不隐藏使用,也就是在VFP环境中使用,没啥问题。编译成exe,不想看见_screen,就隐藏了它,问题就尤为明显。

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

5 天前 11:16
kangss
Rank: 8Rank: 8
等 级:贵宾
威 望:14
帖 子:318
专家分:732
注 册:2014-6-12
收藏
得分:0 
CCB2000的分析原因解决方案估计大部分人都看不懂,如果能看懂,做个补丁啥的,也许能解决
5 天前 11:21
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:362
专家分:335
注 册:2013-10-4
收藏
得分:0 
以下是引用kangss在2025-4-8 11:16:45的发言:
N年前突然发现这个现象,以为自己用的方式不对,反反复复调整了很久,发现不是自己用的不对


我没试,只是灵光一现,随口那么一说,嘿嘿。

回过头来我也测试了一下自己N年前制作的软件,敢情我做的那些也存在这个bug!只是软件当中的ComboBox不太起眼,用的机会也不多,N年以来从不曾收到过用户针对这个问题的反馈,惭愧惭愧!

那就值得探讨一下子了:

据你侦测的结果,当用户点击下拉列表,并选中第一项时,ComboBox并未发生任何click或MouseDown事件;那么,鼠标点击事件,究竟被哪一个父对象给私吞了去?能否侦测出来?感觉上,Click事件不像是被Form拦截了。可,既然下拉列表能被收回,下方先前被遮盖的Form部分能够被refresh,这意味着,肯定有什么事件曾经发生过——虽然事件最终不一定被ComboBox正确识别到。

那么,找到这个事件的owner,以及这一个事件本身,然后在它的事件代码中刷新ComboBox的值,估计就能成功了。

好吧,现在拷问灵魂的问题来了:

他是谁(owner)?发生了什么(event)?

你再仔细侦测一下下??

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

5 天前 11:37
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:769
专家分:3010
注 册:2018-3-13
收藏
得分:0 
以下是引用kangss在2025-4-3 17:35:48的发言:
此时点击窗口,combox的值又更新了。

才注意到这,我好像有了一个 idea ...,待验证

这家伙很懒,啥也没留下
5 天前 14:12
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:362
专家分:335
注 册:2013-10-4
收藏
得分:0 
以下是引用csyx在2025-4-8 14:12:30的发言:
才注意到这,我好像有了一个 idea ...,待验证


我敢打赌,你的所谓idea,无非是四处乱加:

thisForm.click

那玩意儿不灵光的。我其实在上边已给出了答案。只是我的解决方案,在我们许多软件当中用过,不太方便暴露马甲……
5 天前 14:15
快速回复:VFP9 combox 的BUG,CCB2000在VFP10中已修复。谁有简单的绕过这个BUG的 ...
数据加载中...
 
   



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

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