Re: [VB6 ]下拉式選單(ComboBox)的問題?

看板Visual_Basic作者 (necsa)時間16年前 (2008/04/14 17:30), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串2/2 (看更多)
小弟不才. 即使有兩位版友給我方向,但花了一些時間還是弄不出來. 有一位版友的建議是: "與資料庫結合,透過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

04/16 12:32, , 1F
試試Combo1.RemovwItem
04/16 12:32, 1F

04/16 12:37, , 2F
我已經將清除combobox內容的方法從clear改成removeItem,基本
04/16 12:37, 2F

04/16 12:38, , 3F
上combobox內容的立即性更新沒有問題,但就是那個下拉memu被
04/16 12:38, 3F

04/16 12:39, , 4F
更新之後不會自動redraw,會變得很怪,除非手動按dropButton收
04/16 12:39, 4F

04/16 12:42, , 5F
起來,在手動按dropbutton打開,才會正常..怪~~~~
04/16 12:42, 5F
文章代碼(AID): #180oHGyk (Visual_Basic)
文章代碼(AID): #180oHGyk (Visual_Basic)