列表框:如何垂直滚动多列项目?

时间:2014-10-16 15:22:33

标签: delphi listbox

Total Commander有Listbox,可以在Thumbs模式下垂直滚动,有N列。如果100个项目,则第1行有N个项目,第2行有N个项目,....并且滚动条是垂直的。我不能在Delphi7中做到这一点。我添加了100个项目并设置了Columns=4,但滚动是水平的。

如何让它垂直?

1 个答案:

答案 0 :(得分:4)

您应该考虑使用TListView代替TListBox。列表框用于更简单的事情。

根据the documentation(强调我的)TListBox Columns > 0确实只显示水平滚动条:

  

多列列表框有一个允许用户使用的水平滚动条   在包装时查看多个列。

此外,这不是VCL列表框控件的限制。确实,根据the MSDN article on the standard Windows List Box control

  

<强> LBS_MULTICOLUMN

     

指定滚动水平的多列列表框。该   列表框自动计算列的宽度,或者   应用程序可以使用LB_SETCOLUMNWIDTH消息设置宽度。   如果列表框具有LBS_OWNERDRAWFIXED样式,则可以设置应用程序   列表框发送WM_MEASUREITEM消息时的宽度。

     

LBS_MULTICOLUMN样式的列表框无法垂直滚动 -it   忽略它收到的任何WM_VSCROLL消息。