You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 02:09:55