Option Explicit'首先 工程 部件中 加载 Microsoft Forms 2.0 Object Library '然后,在窗体上画一个 Microsoft Forms 2.0 Object Library控件组中的combobox Private Sub ComboBox1_Click() ComboBox1.Text = ComboBox1.List(ComboBox1.ListIndex, 1) End SubPrivate Sub Form_Load() ComboBox1.ColumnCount = 2 ComboBox1.ListWidth = "6 cm" ComboBox1.ColumnWidths = "3 cm;3 cm" Dim i As Long For i = 0 To 1000 ComboBox1.AddItem "num " + CStr(i) ComboBox1.List(i, 1) = "test " + CStr(i) Next End Sub
做两个 ListBox,设置不同的列数,重叠放置。其中一个 Visuable = False。 每次更新时同时清空和填充二者。再根据填充循环所得的列表项数决定显示哪一个。例如: n = 0 List1.Clear List2.Clear List1.Visual = True List2.Visual = False Do Until rs.EOF List1.AddItem rs.Fields(1) List2.AddItem rs.Fields(1) n = n + 1 If n > MaxItemInColumn Then List1.Visual = False List2.Visual = True End If rs.MoveNext Loop
'然后,在窗体上画一个 Microsoft Forms 2.0 Object Library控件组中的combobox
Private Sub ComboBox1_Click()
ComboBox1.Text = ComboBox1.List(ComboBox1.ListIndex, 1)
End SubPrivate Sub Form_Load()
ComboBox1.ColumnCount = 2
ComboBox1.ListWidth = "6 cm"
ComboBox1.ColumnWidths = "3 cm;3 cm"
Dim i As Long
For i = 0 To 1000
ComboBox1.AddItem "num " + CStr(i)
ComboBox1.List(i, 1) = "test " + CStr(i)
Next
End Sub
bbbb bbbbbb
cccc cccc
dddddd
eeee即第一列还未显示满,就在第二列显示余下的数据。
每次更新时同时清空和填充二者。再根据填充循环所得的列表项数决定显示哪一个。例如:
n = 0
List1.Clear
List2.Clear
List1.Visual = True
List2.Visual = False
Do Until rs.EOF
List1.AddItem rs.Fields(1)
List2.AddItem rs.Fields(1)
n = n + 1
If n > MaxItemInColumn Then
List1.Visual = False
List2.Visual = True
End If
rs.MoveNext
Loop
我的想法是listBox可能不止两列,而每一列的数据量可能也不一样,这些都是动态的。
而且要求全部都可以看见,而不是用visible属性来控制它的显示。
Option Explicit
'首先 工程 部件中 加载 Microsoft Forms 2.0 Object Library
'然后,在窗体上画一个 Microsoft Forms 2.0 Object Library控件组中的comboboxPrivate Sub ComboBox1_Click()
ComboBox1.Text = ComboBox1.List(ComboBox1.ListIndex, 1)
End SubPrivate Sub Form_Load()
ComboBox1.ColumnCount = 2
ComboBox1.ListWidth = "6 cm"
ComboBox1.ColumnWidths = "3 cm;3 cm"
Dim i As Long
ComboBox1.AddItem "aaaa"
i = ComboBox1.ListCount - 1
ComboBox1.List(i, 1) = "aaaaa"
ComboBox1.AddItem "bbbb"
i = ComboBox1.ListCount - 1
ComboBox1.List(i, 1) = "bbbbb"
ComboBox1.AddItem "cccc"
i = ComboBox1.ListCount - 1
ComboBox1.List(i, 1) = "cccccc"
ComboBox1.AddItem ""
i = ComboBox1.ListCount - 1
ComboBox1.List(i, 1) = "ddddddd"
ComboBox1.AddItem ""
i = ComboBox1.ListCount - 1
ComboBox1.List(i, 1) = "eeeeee"
End Sub
'首先 工程 部件中 加载 Microsoft Forms 2.0 Object Library
'然后,在窗体上画一个 Microsoft Forms 2.0 Object Library控件组中的listboxPrivate Sub Form_Load()
ListBox1.ColumnCount = 2
ListBox1.ListWidth = "6 cm"
ListBox1.ColumnWidths = "3 cm;3 cm"
Dim i As Long
ListBox1.AddItem "aaaa"
i = ListBox1.ListCount - 1
ListBox1.List(i, 1) = "aaaaa"
ListBox1.AddItem "bbbb"
i = ListBox1.ListCount - 1
ListBox1.List(i, 1) = "bbbbb"
ListBox1.AddItem "cccc"
i = ListBox1.ListCount - 1
ListBox1.List(i, 1) = "cccccc"
ListBox1.AddItem ""
i = ListBox1.ListCount - 1
ListBox1.List(i, 1) = "ddddddd"
ListBox1.AddItem ""
i = ListBox1.ListCount - 1
ListBox1.List(i, 1) = "eeeeee"
End Sub
对于多列显示,最好用ListView控件