|

Como Adicionar Tabs a uma ListBox no Visual Basic

Compartilhe :

O ListBox padrão do Visual Basic não suporta colunas, mas podemos contornar essa limitação utilizando a função API SendMessage do Windows. Isso permite organizar os itens da ListBox em colunas utilizando tabulações.


Passo a Passo para Criar Colunas na ListBox

– Adicione uma ListBox ao formulário e nomeie-a como lstCapitais.
– Crie um módulo (arquivo .BAS) para armazenar a constante necessária.
– Utilize a API SendMessage para configurar os espaçamentos das colunas.
– Insira os dados formatados na ListBox utilizando vbTab.


Código Completo

No Módulo (.BAS), adicione a constante e declare a API

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 Const LB_SETTABSTOPS = &H192

No Formulário, insira o seguinte código

Private Sub Form_Load()
    Dim lngRet As Long
    
    ' Define a posição da tabulação (espaço entre colunas)
    lngRet = SendMessage(lstCapitais.hwnd, LB_SETTABSTOPS, 1, ByVal CLng(40))
    
    ' Chama o procedimento para adicionar os itens formatados
    Call AdicionarCapitais
End Sub

Private Sub AdicionarCapitais()
    With lstCapitais
        .Clear ' Garante que a ListBox está vazia antes de adicionar itens
        .AddItem "Estado" & vbTab & "Capital"
        .AddItem "-----------------" & vbTab & "-----------------"
        .AddItem "São Paulo" & vbTab & "São Paulo"
        .AddItem "Rio de Janeiro" & vbTab & "Rio de Janeiro"
        .AddItem "Minas Gerais" & vbTab & "Belo Horizonte"
        .AddItem "Pernambuco" & vbTab & "Recife"
    End With
End Sub

Explicação do Código

– SendMessage → Define os espaços das colunas dentro da ListBox.
– LB_SETTABSTOPS → Configura os pontos de tabulação para alinhar os itens.
– vbTab → Insere a tabulação entre os dados.
– lngRet → Armazena o valor retornado pela API.
– AdicionarCapitais → Insere os dados na ListBox já formatados.
– .Clear → Limpa a ListBox antes de adicionar novos itens.


Aprimorando a Visualização

– Linha de separação entre títulos e dados.
– Título “Estado | Capital” para melhor organização.
– Tabulação configurada para manter alinhamento adequado.


Agora sua ListBox exibe colunas organizadas de forma profissional, sem precisar usar um ListView! 🚀

Posts Similares