gpt4 book ai didi

delphi - 如何使 TCheckListBox 垂直滚动?

转载 作者:行者123 更新时间:2023-12-03 15:26:10 25 4
gpt4 key购买 nike

我在表单上有一个 TCheckListBox。它的 Columns 属性设置为 2,如果屏幕上两列无法容纳的项目数,它会在控件底部放置一个水平滚动条。

事实是,这种形式的布局方式,垂直滚动会更方便。但我似乎不知道如何让盒子做到这一点。我认为将 Columns 设置为 1 应该可以,但事实并非如此。

有人知道如何使 TCheckListBox 垂直滚动而不是水平滚动吗?

最佳答案

您需要将Columns设置为0。

对于所有正值,VCL 都会向底层 native 列表框控件发送一条 LB_SETCOLUMNWIDTH 消息,其中宽度参数设置为列表框客户端宽度除以列数。不适合的项目将开始一个具有相同列宽的新列,因此水平滚动条变得可见。

如果Columns为0,则有一个列跨越列表框的整个客户端宽度,不适合的项目将使垂直滚动条可见,并隐藏水平滚动条.

编辑:

Columns 属性使用负值时,人们似乎真正感兴趣的是会发生什么。

方法TCustomListBox.CreateParams()根据Columns属性不为0来设置LBS_MULTICOLUMN列表框样式。对于负值设置了样式标志,但 VCL 不发送 LB_SETCOLUMNWIDTH 消息,因此 native 控件使用默认列宽。是documented成为:

15 times the average character width for the font used by the list box.

(搜索“LBS_MULTICOLUMN 样式指定”以查找相关文本段落。)

关于delphi - 如何使 TCheckListBox 垂直滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2293085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com