加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 如何使用OwnerData true处理TListView中的默认列自动

发布时间:2020-12-15 09:46:06 所属栏目:大数据 来源:网络整理
导读:我有一个TListView(在报告模式下),我在虚拟模式下使用(OwnerData:= True).除了我知道的自动自动调整列的两种情况之外,一切都很好.他们是: 双击标题列分隔符以自动调整单个列 Ctrl-KeypadPlus键可自动调整所有列. 在虚拟模式下这些事件的默认处理并不真正起
我有一个TListView(在报告模式下),我在虚拟模式下使用(OwnerData:= True).除了我知道的自动自动调整列的两种情况之外,一切都很好.他们是:

>双击标题列分隔符以自动调整单个列
> Ctrl-KeypadPlus键可自动调整所有列.

在虚拟模式下这些事件的默认处理并不真正起作用(它似乎在第一行数据上自动调整.)我想挂钩行为并自己进行列自动调整.有谁知道这是怎么做到的吗?或许我错过了一些明显的东西?我正在使用Delphi XE.谢谢你的任何建议.

解决方法

使用在执行自动调整大小操作时可见的所有项目执行虚拟列表视图控件的自动调整大小列.这是Delphi TListView控件的行为.尝试在资源管理器中执行相同的操作,您可以很容易地看到这是操作系统标准.

在非虚拟模式下操作列表视图时,执行自动调整大小时会考虑所有行的内容.

我不确定为什么你会观察自动大小只考虑第一行数据.如果这真的是你发生的事情,那么我认为你的代码中必定存在一些我们需要看到的错误.

您的问题似乎是Windows XP错误.就我所见,虚拟列表视图在XP上无法正确执行自动调整大小.我认为探险家在XP和Vista之间从非虚拟切换到虚拟,我不介意打赌探险队有足够的内部杠杆来解决问题.

据我所知,您没有收到自动调整大小的通知,因此我认为您可能很难解决问题.如果您想进一步追求这一点,那么您可以尝试响应标题控件的HDN_DIVIDERDBLCLICK通知和CTRL列表.但是,我不确定这种方法是否会产生任何乐趣.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读