LB_SETTABSTOPS似乎不会影响CheckedListBox

时间:2010-04-12 15:50:13

标签: vb.net winforms listbox checkedlistbox

我正在尝试在WinForms应用程序中的CheckedListBox中设置制表位,但无论我做什么,它似乎都没有任何效果。我的表单代码中有以下内容:

<DllImport("user32.dll")> _
Public Sub SendMessage(ByVal hWnd As IntPtr, ByVal uMsg As Int32, ByVal wParam As Int32, ByRef lParam As Int32)
End Sub

Public Const LB_SETTABSTOPS As Int32 = &H192

在表单的load方法中,我正在执行以下操作,其中theList是我的CheckedListBox:

Dim tabStops() As Integer = {40, 140, 240}
Call SendMessage(theList.Handle, LB_SETTABSTOPS, tabStops.Length, tabStops(0))
theList.Refresh()

然后,我在循环中使用它,其中col1到col4都是列的字符串值:

theList.Items.Add(col1 & vbTab & col2 & vbTab & col3 & vbTab & col4)

但无论我使用什么用于tabStops的值,列表都使用标准宽度制表位进行格式化。

1 个答案:

答案 0 :(得分:0)

theList.CustomTabOffsets.AddRange({40, 140, 240})
theList.UseCustomTabOffsets = True

theList.Items.Add(col1 & vbTab & col2 & vbTab & col3 & vbTab & col4)

how to make more than 2 column's in ListBox using C#?