Busca rápida em uma Caixa de Listagem usando API.
Só para você sentir a força das API´s vamos mostrar como efetuar uma busca rápida em uma caixa de listagem.
Código da seção General Declarations: (para usar um módulo remova a clausula Private na declaração da função e troque a mesma cláusula por Public na definição da constante)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As _ Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long Private Const LB_FINDSTRING = &H18F |
Código atribuído ao evento Change da ListBox:
Private Sub Text1_Change() List1.ListIndex = SendMessage(List1.hwnd, LB_FINDSTRING, -1, ByVal CStr(Text1.Text)) End Sub |
Carregue alguns dados na Caixa de listagem:
Private Sub Form_Load() List1.AddItem "Ana Bueno Silva" List1.AddItem "Ana Buena Sá" List1.AddItem "Ana Carla Se" List1.AddItem "Ana Lima Junior" List1.AddItem "Ana Maria Ribeiro" List1.AddItem "Ana Marta Olten" List1.AddItem "Ana Lucia Godoy" End Sub |
Ponha o foco na caixa de texto:
Private Sub Form_Activate() Text1.SetFocus End Sub |
Rode o projeto e digite um nome na caixa de texto. A medida que você for digitando o item na caixa de listagem será selecionado a medida que os caracteres coincidirem.
Fácil , Fácil...