以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助ListView里的自动适应问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189619)

--  作者:dhyskyworld
--  发布时间:2023/12/12 11:55:00
--  求助ListView里的自动适应问题
看到ListView实列里有这么一句代码:lvw.Columns("国家").AutoResize,但是如果有多列,要怎么改这句代码,让所有的列自适应,帮助都看过了,没找到,也试了很多种方法都没有成功,求老师指教
--  作者:有点蓝
--  发布时间:2023/12/12 12:00:00
--  
逐一设置,比如

lvw.Columns("列一").AutoResize
lvw.Columns("列二").AutoResize

或者

for each c as string in {"列一","列二"}
lvw.Columns(c).AutoResize
next

--  作者:dhyskyworld
--  发布时间:2023/12/12 12:18:00
--  
第二种方法想是想到了,但是如果遇到十几、二十几、甚至更多的时候,这个代码也是挺长的,也说明了Columns()里必须要指定列名。不知道Columns()是否可以改一下功能,在不输入列名的情况下则表示所有列都算上,这样代码更简洁一些
--  作者:cd_tdh
--  发布时间:2023/12/12 12:42:00
--  
循环所有列啊
--  作者:有点蓝
--  发布时间:2023/12/12 13:50:00
--  
改不了,这个控件是.net自带的。

如果不是只设置其中的几个列,而是所有列都这样,遍历所有列即可

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
For Each c As WinForm.ListViewColumn In lvw.Columns
    c.AutoResize
Next 

--  作者:dhyskyworld
--  发布时间:2023/12/12 13:56:00
--  
图片点击可在新窗口打开查看晕,我咋就没转过弯来