主题:请教高手:如何实在组合框中编辑输入时实现输入‘联想’功能,快帮忙吗急死人
glaser
[专家分:0] 发布于 2009-04-10 20:58:00
请教:如何实在组合框中用户在编辑输入第一个字时,高亮条将移动到列表中第一个字与输入字相匹配的第一条目上;比如我在组合框中输入‘中’时,高亮条自动出现该组合框RowSource中列表中有‘中’的第一个相关值供选取;谢。
最后更新于:2009-04-11 10:09:00
回复列表 (共4个回复)
沙发
wuzhouhong [专家分:10890] 发布于 2009-04-11 15:07:00
*** InterActiveChange()
*** 智能搜索匹配
LOCAL I , cCurrValue , K , nPreItem
IF !INLIST(LASTKEY(),7,127) && Del,BackSpace
m.cCurrValue=TRIM(this.DisplayValue)
m.K=0
FOR m.I=1 TO this.ListCount
IF this.List(m.I)=m.cCurrValue
m.K=m.K+1
IF m.K>=2 && 有重复的近似条目
EXIT && 退出搜索
ELSE
m.nPreItem = m.I && 前一条目位置
ENDIF
ENDIF
ENDFOR
IF m.K==1
this.DisplayValue=this.List(m.nPreItem)
this.SelStart=LEN(m.cCurrValue)
this.SelLength=LEN(this.List(m.nPreItem))-LEN(m.cCurrValue)
ENDIF
ENDIF
板凳
glaser [专家分:0] 发布于 2009-04-12 10:08:00
谢谢wuzhouhong老师,你的方法能很好的解决了英文打头的文字匹配功能,汉字打头的好像不怎么灵敏(有时要打几个字才出来),还有没有更先进的‘武器’,谢谢
3 楼
wuzhouhong [专家分:10890] 发布于 2009-04-12 12:16:00
不是因为汉字不灵,而是程序设定了,重复内容暂不显示,直到没有重复的才出现自动匹配剩余的字符串。
你自己改动一下就可以了。
4 楼
glaser [专家分:0] 发布于 2009-04-12 15:16:00
wuzhouhong老师
除了改动 IF m.K==1为IF m.K>=1还要改动什么地方才好呢?
我来回复