请教关于列表框的滚动条

wujiwang 2003-01-15 10:57:13
VB 6.0里列表框的纵向滚动条当框内条目变多时会自动出来,可是条目很长时横向滚动条怎么出不来啊?VC 6.0, .net 里都可以从属性里加上啊,VB 6.0 不行吗?有什么简单的办法吗?
...全文
167 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ityaa 2003-01-16
http://expert.csdn.net/Expert/topic/1359/1359963.xml?temp=.8214075
回复
along 2003-01-16
注意:VB中列表框本身无水平滚动条只有借助API以下给你一段代码为列表框添置加一洋水平滚动条:
用SENDMESSAGE函数(声明参由VB的API外接程序插入即可),采用如下形式即可为LISTBOX添加一长度为1000的水平滚动条(使用时据实际情况灵活使用);

Public Const LB_SETHORIZONTALEXTENT = &H194

SendMessage LISTBOX的句柄, LB_SETHORIZONTALEXTENT, 1000, 0
回复
lxcc 2003-01-15
用text(multiline=true,scrollbars=3,locked=true)来模拟吧
设置鼠标形状为缺省状态,
然后判断鼠标单击那一行(csdn上有搜一下)
然后用click事件等等

我说的容易,作却未必
回复
wujiwang 2003-01-15
不是啊,我是指单条条目的长度超出列表框的宽度时应出现横向滚动条。列只有一个,但内容很长。
回复
of123 2003-01-15
仅当多列显示时才会有水平滚动条。
当单列显示且列表项过长时,不会有滚动条。你只有自己解决:
1 事先设置列表框宽度能够容纳最长的项。(最简单)
2 填充列表框时检测最大列表项字节长度,动态调整列表框。(会影响布局)
3 当鼠标进入列表框时,计算鼠标所在条目,检测其长度。如果超长,用工具提示显示其内容:

'假定列表框使用5号字
Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Len(List1.List(Y \ 180)) > 10 Then List1.ToolTipText = List1.List(Y \ 180)
End Sub
回复
Jugular_Phoenix 2003-01-15
列表框的滚动模式由属性Columns的值来决定,当值为0时,默认为垂直滚动,
当列大于0时则当列数超过列表框的高度时,出现水平滚动条,按所设置的Cloumns的值从上到下,从左到右排列。
回复
NYN 2003-01-15
有个columns属性(好像是这个),你可以试试看.
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告