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

在网上搜了很多办法,包括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

时间: 2024-11-23 06:59:07

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

Android中ListView字母排序,实现字母挤压效果以及右侧快速选中字母,搜索关键字功能

Android中ListView字母排序,实现字母挤压效果以及右侧快速选中字母,搜索关键字功能 本文中阐述如何自定义EditText实现搜索框自定义的样式以及挤压字母的思路等 自定义EditText 相关的drawable文件 主界面以及相关的适配器 结果展示 定义要呈现的EditText的样式 public class ClearEditText extends EditText implements OnFocusChangeListener, TextWatcher { /** * 定义删

android 中 listview 设置自动匹配高度

1.布局文件 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" andr

SqlServer中计算列详解

计算列区别于需要我们手动或者程序给予赋值的列,它的值来源于该表中其它列的计算值.比如,一个表中包含有数量列Number与单价列Price,我们就可以创建计算列金额Amount来表示数量*单价的结果值,创建Amount列后,在程序中需要使用计算金额这个值时,就不用取出Number列与Price列的值后相乘,而是直接取Amount列的值就可以了. 那么这个计算列要如何建立呢? 先看通过sql的方法创建: create table table1 ( number decimal(18,4), pric

PowerDesigner里面将表中name列值复制到comment列

/** * PowerDesigner里面将表中name列值复制到comment列 * @see -------------------------------------------------------------------------------------------------------------------- * @see pd中的pdm默认生成sql时,字段是没有注释的..想要注释的话,有2个方法 * @see 1.也是推荐的 * @see pdm中双击打开一个Table,

C#winform中ListView的使用

使用ListView模仿Windows系统的资源管理器界面,实现文件(夹)的浏览.重命名.删除及查询等功能,主要功能界面展示如下: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System

asp.net中使kindeditor自动生成缩略图

kindedtor编辑器,确实很好用,但是也有很多的不足,比如,我们经常用的图片上传功能,首页如果有图片新闻或者需要显示宿略图的时候,你会发现它并没有提供图片上传自动生成缩略图的功能 ,于是,花了一点时间,对它的上传图片的功能进行了改写,废话少说,直接上代码 图片上传功能调用的是:upload_json.ashx  代码如下 复制代码 using System; using System.Collections; using System.Web; using System.IO; using

C# ListView 列宽自动调整

/*********************************************************************** * C# ListView 列宽自动调整 * 说明: * 记录将C#中的ListView列宽设置为自动调整. * * 2016-7-5 深圳 南山平山村 曾剑锋 **********************************************************************/ 一.参考文章: C# ListView Colu

WPF-两份excel文档列自动匹配导入工具-技术&amp;分享

WPF-两份excel文档列自动匹配导入工具-技术&分享 A文档中包含两列x,y(x与y对应):B文档包含一列y,需要将A文档的y匹配B文档的y,将A文档的x内容匹配到B文档中,与B文档中的y列对应. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Windows; using System.Windows.Forms; using Mysoft.Co

Oracle中对列加密的方法

Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col(id int,txt varchar2(100) encrypt using '算法名称' identified by '密钥' no salt);优点:对应用完全透明缺点:需要数据库管理员管理wallet,增加了管理复杂性,也无法避免数据库管理员查看原文. 2,使用DBMS_CRYPTO包优点: