在网上搜了很多办法,包括width=-1、-2,效果都不理想。自己摸索了个办法:

1:设计时,先把各列尺寸大体上调好;

2:启动时记下来各列width所占的比例。

public class colSizes : List<double> { };
public colSizes[] grdSizes = new colSizes[3];
public DateTime dBegin = DateTime.Today;////
loadSizes(grd_ing, ref grdSizes[0]);
loadSizes(grd_hege, ref grdSizes[1]);
loadSizes(grd_buhege, ref grdSizes[2]);///private void loadSizes(ListView grd, ref colSizes cs){   //记住比例if (cs == null) cs = new colSizes();cs.Clear();double nAll = 0;foreach (ColumnHeader itm in grd.Columns) nAll += itm.Width;foreach (ColumnHeader itm in grd.Columns) cs.Add(itm.Width / nAll);}

3:resize时按比例重新设置一遍各列的width.

private void setAutoSize(ListView grd, colSizes cs){   //自动适应宽度,-1根据内容设置宽度,-2根据标题设置宽度if (cs == null) return;for (int i = 0; i < Math.Min(cs.Count, grd.Columns.Count); i++)grd.Columns[i].Width = (int)Math.Round(grd.ClientSize.Width * cs[i], 0);}private void FrmView_Resize(object sender, EventArgs e){setAutoSize(grd_ing, grdSizes[0]);setAutoSize(grd_hege, grdSizes[1]);setAutoSize(grd_buhege, grdSizes[2]);}

效果相当完美,按比例缩放

转载于:https://www.cnblogs.com/HaiHong/p/11106206.html

C#中listView列自动适应缩放的完美效果相关推荐

  1. 如何:从 Windows 窗体 DataGridView 控件中移除自动生成的列

    如果将 DataGridView 控件设置为根据其数据源中的数据自动生成列,则可以选择忽略某些列.可以通过调用 Columns 集合的 Remove 方法进行此操作.或者,也可通过将 Visible ...

  2. adf4351_在ADF实体PK属性中使用MySQL自动增量PK列

    adf4351 大家好. 继续进行ADF + MySQL解决方法系列,今天我们将看到需要做些什么才能将MySQL PK自动增量列与ADF实体PK属性一起使用. 如果我们使用的是Oracle数据库,则可 ...

  3. adf 自动输稿器_在ADF实体PK属性中使用MySQL自动增量PK列

    adf 自动输稿器 大家好. 继续进行ADF + MySQL解决方法系列,今天我们将看到需要做些什么才能将MySQL PK自动增量列与ADF实体PK属性一起使用. 如果使用的是Oracle数据库,则可 ...

  4. 在ADF实体PK属性中使用MySQL自动增量PK列

    大家好. 继续进行ADF + MySQL解决方法系列,今天我们将看到要使用MySQL PK自动增量列和ADF实体PK属性来进行的工作. 如果使用的是Oracle数据库,则可以使用oracle.jbo. ...

  5. android listview 列宽度,WPF中用ListView时使GridView中的每列宽度按比例变化并使内容自适应单元宽度...

    在使用ListView的时候,GridView中的每列宽度默认是没法按比例变化的,我们可以使用一个跟它同大小的Grid,给Grid设置相同数量的列,设置好每列的宽度,然后将其宽度绑定到GridView ...

  6. wpf的listview编辑指定列_将项目添加到WPF ListView中的列

    小编典典 更少的XAML和更多的C#解决方案 如果您ListView在XAML中定义: 然后,您可以添加列并在C#中填充它: public Window() { // Initialize this. ...

  7. mysql中递增列_如何使用JDBC在MySQL中创建带有自动递增列的表?

    在创建表时,在某些情况下,我们需要自动生成/增加列的值(例如ID).各种数据库以不同的方式支持此功能. 在MySQL数据库中,您可以使用以下语法声明列自动递增.CREATE TABLE table_n ...

  8. C#中ListView详解

    ListView是一个Windows 列表视图控件,该控件显示可用五种不同视图(LargeIcon,Details,SmallIcon,List,Tile)之一显示项的集合. 对于这四种视图,官方文档 ...

  9. EXCEL中数据的自动匹配主要包含的内容

    EXCEL中数据的自动匹配主要包含的内容: EXCEL中无法直接使用SELECT语句进行数据查询.定位.匹配,必须依赖其自身提供的函数.本文将介绍三种EXCEL中的数据自动匹配方法,使单元格内容能够自 ...

最新文章

  1. .net实现跨页面传值
  2. 苹果正式推iOS 4.2可使iPad支持多任务
  3. 深入super,看Python如何解决钻石继承难题
  4. 棱镜调查:提高渠道兼容性从游戏设计开始
  5. DOCKER OVERLAY2占用大量磁盘空间解决办法
  6. 一条nginx命令引发的对于容器的思考
  7. 网鼎杯2020php反序列化,2020-网鼎杯(青龙组)_Web题目 AreUserialz Writeup
  8. List集合的去重问题
  9. SQL Server和Oracle的差异
  10. mysql基础知识复习
  11. ARM 指令集版本和ARM 版本
  12. 如何做 ASO 优化?
  13. linux大容量硬盘 克隆到小硬盘_clonezilla 不管用了,手动把 GPT 分区的 ubuntu14.04 从大硬盘克隆到小硬盘...
  14. 模拟实现memcmp
  15. 【已解决】打开游戏或者游戏引擎耳机出现滋滋滋的电流声
  16. iCollections for Mac(桌面文件整理软件)
  17. 推荐 | 一些奇特的人工智能App
  18. 为2017年出生的孩子免费取名字,孩子起名要注意的问题
  19. 架构活动中风险敞口的预估
  20. google引擎地址

热门文章

  1. 小米小爱蓝牙音箱_小米小爱蓝牙音箱——值否?
  2. dhrystone测试结果_RTThread软件包可以对MCU进行性能测试,跑一个试试!
  3. 什么是多任务、进程、线程
  4. iOS Hacker 重签名实现无需越狱注入动态库 dylib
  5. CFtpFileFind FindFile卡住的问题
  6. 人工智能的突破需要颠覆图灵机吗?
  7. ros_openvino_toolkit环境搭建纪实
  8. GCC __builtin_expect与kernel指令序列优化
  9. 数组——两个有序数组的合并
  10. 结构分析的计算机方法有哪些,第6篇 桥梁结构分析计算机方法.ppt