作者necsa (necsa)
看板Visual_Basic
标题Re: [VB6 ]下拉式选单(ComboBox)的问题?
时间Mon Apr 14 17:30:55 2008
小弟不才.
即使有两位版友给我方向,但花了一些时间还是弄不出来.
有一位版友的建议是:
"与资料库结合,透过SQL过滤data,取前面n笔资料"
=> 因为VB与资料库的link完全不懂, 所以没有往这个方向走.
另一位版友的建议是:
"自己配合字串处理 把不合的项目移除掉"
=>我采用这个方式.
1.ComboBox.MatchEntry 设定为 2 - fmMatchEntryNone
并将ComboBox的内容存到一个A阵列内
2.在ComboBox_Change()的时候,使用Clear方式(ComboBox.clear),
将ComboBox的内容全部清掉,并将ComboBox.text的内容与A阵列的内容用
回圈全部判断一次,字串开头符合者用AddItem加到ComboBox内.
执行後clear後又重新AddItem的ComboBox变得很怪.
下拉式选单本来是满满的资料,面积下拉得很大.被clear之後原本被下拉的面积
不变(没有被更新)但内容变灰色的.
被我筛选出来用AddItem重新填入的data被挤在一个小格子内.
旁边多出了一个小小的上下键可选择我要的资料.
总之做出来的跟我理想中的不一样:~~~~~
不晓得除了连结资料库的方法之外,有没有机会将comboBox做成
像"yahoo字典"那样的功能?
※ 引述《necsa (necsa)》之铭言:
: 记得很久以前有看过一个别人的程式.
: 有一个下拉式选单,像是使用style=0组合式的那种.
: 可以下拉也可以自行keyin.
: 但他有一个比较特别的功能是假设选单内有很多笔data,
: 在输入区输入的时候,选单会筛选剩下字元开头符合输入字元的选项.
: 例如选单内有4笔:
: 1234555
: 1243666
: 1245555
: 1324536
: 输入1的时候,有4个选项可选 (开头全符合1)
: 1234555
: 1243666
: 1245555
: 1324536
: 输入12的时候,会剩下(12开头)
: 1234555
: 1243666
: 1245555
: 输入124,会剩下(124开头)
: 1243666
: 1245555
: 124又改回123, 剩下的又是
: 1234555
: 经过这样的筛选, 如此一来只要key前几个字元,
: 剩余符合的选项就会越来越少,
: 不用key完全部就可以直接选到要的选项
: 不知道这样的ComboBox是只要设定某个属性就可以达成?
: 还是要另外写判断式去做筛选?
: 我试了好几个都试不出来, 想请问高手这样的功能是怎麽办到的?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.228.151.34
1F:推 ClubT:试试Combo1.RemovwItem 04/16 12:32
2F:→ necsa:我已经将清除combobox内容的方法从clear改成removeItem,基本 04/16 12:37
3F:→ necsa:上combobox内容的立即性更新没有问题,但就是那个下拉memu被 04/16 12:38
4F:→ necsa:更新之後不会自动redraw,会变得很怪,除非手动按dropButton收 04/16 12:39
5F:→ necsa:起来,在手动按dropbutton打开,才会正常..怪~~~~ 04/16 12:42