作者:绿色风
分类:
时间:2022-08-17
浏览:151
楼主 0Mouse |
Q:如何使Listview控件各列自适应项目文本宽度(图2)呢? 图1:各列等宽,常见
图2:各列自适应项目文本宽度
A:可以使用API函数SendMessage实现,示例代码如下:
- Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
- (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
- Private Const LVM_FIRST As Long = &H1000
- Private Const LVM_SETCOLUMNWIDTH As Long = (LVM_FIRST + 30)
- Private Const LVSCW_AUTOSIZE_USEHEADER As Long = -2
- Private Sub UserForm_Initialize()
- Dim Arr_Title, i As Byte
- Arr_Title = Split("编号,石材,钢材,铝材,玻璃", ",")
- With Lvw
- For i = 0 To UBound(Arr_Title)
- .ColumnHeaders.Add , , Arr_Title(i), .Width / (UBound(Arr_Title) + 1) '各列等宽
- Next i
- .ListItems.Add , , "000394"
- With .ListItems(1)
- .SubItems(1) = 1746245.83
- .SubItems(2) = 475328
- .SubItems(3) = 61856
- .SubItems(4) = 482808.96
- End With
- '设置各列自适应项目文本宽度
- For i = 0 To UBound(Arr_Title)
- SendMessage .hWnd, LVM_SETCOLUMNWIDTH, i, LVSCW_AUTOSIZE_USEHEADER
- Next i
- End With
- End Sub
附件:
使Listview控件各列自适应项目文本宽度.rar |
2楼 335081548 |
谢谢分享 |
3楼 老糊涂 |
谢谢分享 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一