我編程方式從數據庫中使用此代碼元素添加到多列列表框:自動適應列表框中列的寬度
Do While (Not rs.EOF)
ExistingSheetsListBox.AddItem
ExistingSheetsListBox.List(i, 0) = rs.Fields(0)
ExistingSheetsListBox.List(i, 1) = rs.Fields(1)
ExistingSheetsListBox.List(i, 2) = rs.Fields(2)
ExistingSheetsListBox.List(i, 3) = rs.Fields(3)
ExistingSheetsListBox.List(i, 4) = rs.Fields(4)
i = i + 1
rs.MoveNext
Loop
ListBox中插入工作正常,但列的寬度並不總是適應插入其中的元素的長度,我想知道如何做到這一點,以便每列的列寬適應插入到其中的文本。
編輯:我使用@Excel Developers提出的解決方案,並使用@HarveyFrench給出的代碼片段。
你可以在.Net中做到這一點,但我認爲你不能在VBA中。您將必須計算最長條目所需的寬度,然後在運行時將其設置爲該值。 –
有一個相當複雜的解決方法[這裏](http://www.jkp-ads.com/Articles/AutoSizeListBox01.asp),它涉及到使用一個隱藏標籤,該標籤被設置爲每個列中最長的項目,然後使用width屬性從該標籤讀取並用於確定列表框的列大小。 – Soulfire