在列表框中移除滚动条

11

我正在使用vba中的用户表单,并有一个列表框。 我想从底部删除水平滚动条。 有没有办法做到这一点? 我在属性框中没有看到任何选项。

输入图像描述

7个回答

10

当您将列表框的列宽格式属性设置为某些较宽的值,然后将控件大小调整为数据大小时,可能会出现此问题,控件将显示滚动条。

要解决此问题,请在“格式”选项卡下更改“列宽”属性为非常小的值,然后尝试多次更改此属性和列表框控件的大小,直到达到所需效果,并且不再显示滚动条。


2

您需要将列表框或组合框的ListWidth属性设置为大于ColumnWidth属性。

第一个是您在屏幕上显示的大小,第二个是您想要放置在第一个中的大小。


1
正如其他回复中提到的,这是列宽和宽度的组合。主要因素包括: ColumnCount:列表框允许数据在多列之间蛇形滚动,但这是另一个故事了。对于简单情况,请将列数设置为1。 Width:通过拉伸绘图来设置宽度。 ColumnWidths:这将设置列的宽度。在简单情况下,找出已设置的宽度并从该值中减去滚动条的宽度。默认情况下,列宽设置为宽度。由于它还包括垂直滚动条的大小,因此水平滚动条也会出现。
((sum of columnwidths) + vertical scrollbar width) > (width / column count)

在简单情况下,只有一个列宽和一个列,因此如果内容超出列宽,则会出现水平滚动条。

(columnwidths + vertical scrollbar width) > width

要查找滚动条的宽度,请将滚动条拖到画布上。滚动到属性底部,查找宽度。在我的情况下是12.75-将其改为12以简化算术运算。

工作示例:

Column Count = 1
Width = 48pt
Column Widths = 48 - 12 = 36pt

0

尝试将列表框稍微加宽一点……不要太宽,但足以消除水平滚动条。

也许那样会起作用。


我试过了。它可以工作,但是我必须把框变得非常宽。我想保持它足够大以查看列表。 - Mike
@Mike:这些值来自数据库还是数据集列?如果列长度大于列表框,则可能会添加滚动条。 - DJ Burb
这些值来自于我的一个工作表列,该列仅包含文本的宽度。 - Mike

0

点击用户窗体。在属性统计下,查找KeepScrollBarsVisible。
将其更改为0 - fmScrollBarsNone

我花了两个小时来处理这个问题 - 尝试在ListBox中找到答案。它不在那里!

吉姆


0

我在表单开头声明了columnwidth,它的效果非常好!


0
我实际上使用的技巧是将数据部分中的ColumnWidths属性设置为比位置部分中的Width属性小的数字。在下面的图像中,我将ColumnWidths的大小设置为30pt,比Width属性中的数字40小。请查看下面显示两个属性的图像。希望这可以帮助到您。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接