Pada pertemuan kali ini saa akan berbagi trik yaitu cara membuat auto complete pada combobox menggunakan visual basic 6.0 atau VB6.
Auto complete yang dimaksud disini adalah melengkapi teks secara automatis pada saat kita melakukan pengetikan pada pilihan combobox untuk mencari data yang mendekati kata yang kita inginkan dengan syarat sudah ada dalam data combobox.
Trik ini biasanya digunakan karena pilihan combobox yang sangat banyak sehingga si user kesulitan untuk memilih satu per satu. Dengan adanya trik ini si user tidak perlu mencari satu persatu cukup hanya mengetikan beberapa karakter awal yang ada pada kata yang kita akan cari, sehingga otomatis melengkapinya, dengan begitu user tidak perlu mengetik sampai akhir kata.
Nah bagaimana apakah Anda penasaran cara membuatnya berikut ikutilah langkah-langkahnya agar tidak tersesat :
1. Buat Form baru dengan standar EXE
2. Tanamkan 1 buah Combobox, Style:DropDown Combo
3. Tambahkan sebuah jendela Module di project Anda
4. Kemudian ketikan kode dibawah ini dijendela Module :
Const CB_FINDSTRING = &H14C
Public Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Public Enum EnumKarakter
Asli = 0
Ubah = 1
End Enum
Public Function AutoComplete( _
cbCombo As ComboBox, _
sKeyAscii As Integer, _
Optional bUpperCase As Boolean = True, _
Optional cCharacter As EnumKarakter = Asli) _
As Integer
Dim lngFind As Long, intPos As Integer
Dim intLength As Integer, tStr As String
With cbCombo
If sKeyAscii = 8 Then
If .SelStart = 0 Then Exit Function
.SelStart = .SelStart - 1
.SelLength = 32000
.SelText = ""
Else
intPos = .SelStart
tStr = .Text
If bUpperCase = True Then
.SelText = UCase(Chr(sKeyAscii))
Else
.SelText = (Chr(sKeyAscii))
End If
End If
lngFind = SendMessage(.hwnd, CB_FINDSTRING, 0, _
ByVal .Text)
If lngFind = -1 Then
Exit Function
Else
intPos = .SelStart
intLength = Len(.List(lngFind)) - Len(.Text)
If cCharacter = Ubah Then
.SelText = .SelText & Right(.List(lngFind), _
intLength)
Else
.Text = .List(lngFind)
End If
.SelStart = intPos
.SelLength = intLength
End If
End With
End Function
5. Kemudian kembali ke Form1, pada Form1 ketik kode dibawah ini :
With Combo1
.Clear
.AddItem "Jakarta"
.AddItem "Bandung"
.AddItem "Bogor"
.AddItem "Depok"
.AddItem "Bekasi"
.AddItem "Jepara"
.AddItem "Terserah luh"
End With
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
KeyAscii = AutoComplete(Combo1, KeyAscii, False, Asli)
End Sub
Private Sub Form_Load()
Call AddData
End Sub
Output AutoCombo |
Demikinalah artikel dari saya tentang cara membuat auto complete pada combobox menggunakan visual basic 6.0 atau VB6., semoga artikel ini bermanfaat buat kita semua.Amin.
Selamat mencoba semoga sukses...
No comments:
Post a Comment