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 の値に何を使用しても、リストは標準幅のタブ ストップでフォーマットされます。