圆梦者,京本政树 京本大我,九系魔剑神
datagrid中,只要不设置datagrid的宽度和列宽度,或者将宽度设置为auto,那么表格就会根据内容自动调整宽度,以显示所有内容。但如果是listview,按以上方法设置,却达不到列宽自动调整的效果, 列宽在控件第一次加载的时候已经确定,之后不会随着某列数据长度的增加和减少而改变列宽。找了很多方法,感觉下面的方法比较简单和实用,在每次增加或者删除数据集合的时候,将 gridviewcolumn 的 width 属性 设置为 无效值,触发其自适应效果。
原贴地址:
原贴代码:
1 gridview gv = lvtrans.view as gridview; 2 if (gv != null) 3 { 4 foreach (gridviewcolumn gvc in gv.columns) 5 { 6 gvc.width = gvc.actualwidth; 7 gvc.width = double.nan; 8 } 9 }
因为从 c# 7.0 开始,is 语句支持模式匹配,可执行简单的类型计算和转换。使用类型模式执行模式匹配时,is 会测试表达式是否可转换为指定类型,如果可以,则将其转换为该类型的一个变量。代码使用 is 语句更为简洁,同时对列宽直接赋值应该更简捷,所以我略作了修改:
1 //使listview根据内容自动调整宽度 2 if (lvacct.view is gridview gv) 3 { 4 foreach (gridviewcolumn gvc in gv.columns) 5 { 6 gvc.width = 100; 7 gvc.width = double.nan; 8 } 9 }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论