我想做一个带有索引的程序,一个textbox一个listbox,listbox里的所有项目都是中文的,在textbox里输入汉字的拼音字母就可以检索到相关的项目,检索结果按拼音排序,请问怎么做?
我用sendmessage试了,对于英文的可以,但中文的不行,有什么函数或方法可以实现,给段关键地方的代码,谢谢!

解决方案 »

  1.   

    可以利用LIST 的TAG 属性,也可以从数据库或数组中读取拼音,动态添加到列表框。举个百家姓的例子:
    '将 list1 的 sort 属性设为 truePrivate Sub Form_Load()
    Text1.Text = ""
    End SubPrivate Sub Text1_Change()'输入拼音试试,如ZHANG
    Dim temp, temp2
    Const a = "#zhao*赵,#qian*钱,#sun*孙,#li*李,#zhou*周,#wu*吴,#zheng*郑,#wang*王,#feng*冯,#chen*陈,#chu*褚,#wei*卫,#jiang*蒋,#shen*沈,#han*韩,#yang*杨,#zhu*朱,#qin*秦,#you*尤,#hu*许,#he*何,#lv*吕,#shi*施,#zhang*张,#kong*孔,#cao*曹,#yan*严,#hua*华,#jin*金,#wei*魏,#tao*陶,#jiang*姜,#qi*戚,#xie*谢,#ju*邹,#yu*喻,#bai*柏,#shui*水,#dou*窦,#zhang*章,#yun*云,#su*苏,#pan*潘,#ge*葛,#xi*奚,#fan*范,#peng*彭,#lang*郎,#lu*鲁,#wei*韦,#chang*昌,#ma*马,#miao*苗,#feng*凤,#hua*花,#fang*方,#yu*俞,#ren*任,#yuan*袁,#liu*柳,#feng*酆,#bao*鲍,#shi*史,#tang*唐,#fei*费,#lian*廉,#cen*岑,#xue*薛,#lei*雷,#he*贺,#ni*倪,#tang*汤,#teng*滕,#yin*殷,#luo*罗,#bi*毕,#hao*郝,#wu*邬,#an*安,#chang*常,#le*乐,#yu*于,#shi*时,#fu*傅,#pi*皮,#bian*卞,#qi*齐,#kang*康,#wu*伍,#yu*余,#yuan*元,#bu*卜,#gu*顾,#meng*孟,#ping*平,#huang*黄"
    temp = Split(a, ",")
    List1.Clear
    If Len(Text1.Text) > 0 Then
    temp2 = Filter(temp, "#" & LCase(Text1.Text))
    For i = 0 To UBound(temp2)
    List1.AddItem Split(temp2(i), "*")(1)
    Next
    End If
    End Sub