Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Oct 15, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Generic Listbox Columns Routine

Use the SendMessage API to set tab stops in a VB listbox by creating these declarations and this routine in a module:
Private Declare Function SendMessage Lib _
	"user32" Alias "SendMessageA"(ByVal hWnd As _
	Long, ByVal wMsg As Long, ByVal wParam As _
	Long, lParam As Any) As Long
Private Const LB_SETTABSTOPS = &H192

Public Sub SetListTabStops(ListHandle As Long, _
	ParamArray ParmList() As Variant)
	Dim i As Long
	Dim ListTabs() As Long
	Dim NumColumns As Long

	ReDim ListTabs(UBound(ParmList))
	For i = 0 To UBound(ParmList)
		ListTabs(i) = ParmList(i)
	Next i
	NumColumns = UBound(ParmList) + 1

	Call SendMessage(ListHandle, LB_SETTABSTOPS, _
		NumColumns, ListTabs(0))
End Sub
Call the routine in Form_Load to set the tab stops where MyListBox is the listbox and the tab stop will be around the 12th character. Generally speaking, TabStop divided by four equals roughly the number of characters per column:
Call SetListTabStops(lstMyListBox.hWnd, 48)
If more columns are needed, simply add them to the function call:
Call SetListTabStops(lstMyListBox.hWnd, 48, 74, _
Add items to the listbox using vbTab to separate columns:
lstMyListBox.AddItem "Column1" & vbTab & "Column2"
Jim Farrell
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date