我试图在我的 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
在表单的加载方法中,我正在执行以下操作,其中 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 的值使用什么,列表都使用标准宽度制表位进行格式化。