VB6属性页列隐藏问题:拖动/调整列头后列重现如何解决?
VB6 ListView 隐藏列并阻止用户显示的解决方法
首先纠正你代码里的拼写错误:CoulmnHeaders 应该是 ColumnHeaders,正确的初始化隐藏代码是:
List1.ColumnHeaders(8).Width = 0
要彻底阻止用户通过拖动或调整列标题显示该列,需要结合事件拦截实现,具体方案如下:
利用ListView的
ColumnWidthChanging事件,直接取消对目标列的宽度调整操作:Private Sub List1_ColumnWidthChanging(ByVal ColumnHeader As MSComctlLib.ColumnHeader, ByVal NewWidth As Integer, Cancel As Integer) ' 拦截第8列的宽度调整(列索引从1开始计数) If ColumnHeader.Index = 8 Then Cancel = True End If End Sub额外添加
ColumnWidthChanged事件兜底,防止极端情况(如其他操作意外改变列宽):Private Sub List1_ColumnWidthChanged(ByVal ColumnHeader As MSComctlLib.ColumnHeader) If ColumnHeader.Index = 8 Then ColumnHeader.Width = 0 End If End Sub
设置完成后,用户既无法拖动该列标题调整宽度,也不会因拖动其他列导致隐藏列意外显示,彻底锁定该列的隐藏状态。
内容的提问来源于stack exchange,提问作者Peaky_blinder
相关产品推荐
相关产品推荐

