回 帖 发 新 帖 刷新版面

主题:请教高手:如何实在组合框中编辑输入时实现输入‘联想’功能,快帮忙吗急死人

请教:如何实在组合框中用户在编辑输入第一个字时,高亮条将移动到列表中第一个字与输入字相匹配的第一条目上;比如我在组合框中输入‘中’时,高亮条自动出现该组合框RowSource中列表中有‘中’的第一个相关值供选取;谢。

回复列表 (共4个回复)

沙发

*** 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

板凳


谢谢wuzhouhong老师,你的方法能很好的解决了英文打头的文字匹配功能,汉字打头的好像不怎么灵敏(有时要打几个字才出来),还有没有更先进的‘武器’,谢谢

3 楼

不是因为汉字不灵,而是程序设定了,重复内容暂不显示,直到没有重复的才出现自动匹配剩余的字符串。
你自己改动一下就可以了。

4 楼

wuzhouhong老师
除了改动 IF m.K==1为IF m.K>=1还要改动什么地方才好呢?

我来回复

您尚未登录,请登录后再回复。点此登录或注册