2014-10-16 83 views
-2

Total Commander擁有Listbox,可以在Thumbs模式下垂直滾動N列。如果100個項目,那麼第1行有N個項目,第2行有N個項目,....和滾動條是垂直的。我無法在Delphi7中做到這一點。我添加了100個項目並設置了Columns=4,但滾動是水平的。列表框:如何垂直滾動許多項,包括列?

如何使它垂直?

+0

列表視圖是絕對正確的控制 – 2014-10-16 15:49:23

+0

如果Total Commander的列表支持「拇指」模式,它不是TListBox。它是一個TListView,它是一個標準的Windows通用控件(與Windows資源管理器右窗格中使用的相同)。 – 2014-10-16 17:57:37

+0

@KenWhite:從技術上說,它是'以前*在右窗格中使用的'相同的東西'... – 2014-10-16 18:43:38

回答

4

您應該考慮使用TListView而不是TListBox。列表框用於簡單的事情。

TListBox確實只存在一個水平滾動條時Columns > 0,根據the documentation(重點煤礦):

多列列表框具有水平滾動條,允許用戶 查看多個列當他們包裹。

此外,這不是VCL列表框控件的限制。事實上,根據the MSDN article on the standard Windows List Box control

LBS_MULTICOLUMN

指定滾動水平多列列表框中。列表框自動計算列的寬度,或者應用程序可以使用LB_SETCOLUMNWIDTH消息設置寬度。 如果列表框具有LBS_OWNERDRAWFIXED樣式,則當列表框發送WM_MEASUREITEM消息時,應用程序可以設置寬度爲 。

LBS_MULTICOLUMN風格的列表框不能垂直滾動 -it 忽略它收到的任何WM_VSCROLL消息。

+0

TOtalCmd如何做?對此的新控件對於應用程序不適用。 – Prog1020 2014-10-16 15:42:30

+0

@RProgram:你確定Total Commander使用標準的Windows LISTBOX控件嗎? – 2014-10-16 15:45:21

+0

似乎是的。它使用'TMyListbox'作爲面板(常用和拇指模式),'TMyCombobox'用於驅動器,'TMyPanel'用於面板。 – Prog1020 2014-10-16 15:45:58