ListView动态修改列宽

来源:互联网 发布:原创文章是什么算法 编辑:程序博客网 时间:2024/04/29 20:19

在DataGridView中有autocolumnmode来动态改变现实Column的列宽,在ListView中是没有这个属性的,可以通过ListView.SizeChanged 事件去修改列宽,实现相同的效果
代码如下

private bool Resizing = false; private void ListView_SizeChanged(object sender, EventArgs e){    // Don't allow overlapping of SizeChanged calls    if (!Resizing)    {        // Set the resizing flag        Resizing = true;         ListView listView = sender as ListView;        if (listView != null)        {                                           float totalColumnWidth = 0;             // Get the sum of all column tags            for (int i = 0; i < listView.Columns.Count; i++)                totalColumnWidth += Convert.ToInt32(listView.Columns[i].Tag);             // Calculate the percentage of space each column should             // occupy in reference to the other columns and then set the             // width of the column to that percentage of the visible space.            for (int i = 0; i < listView.Columns.Count; i++)            {                float colPercentage = (Convert.ToInt32(listView.Columns[i].Tag) / totalColumnWidth);                listView.Columns[i].Width = (int)(colPercentage * listView.ClientRectangle.Width);                         }        }    }     // Clear the resizing flag    Resizing = false;}

参考链接:


C#: ListView – Dynamically Sizing Columns to Fill Whole Control

http://nickstips.wordpress.com/2010/11/10/c-listview-dynamically-sizing-columns-to-fill-whole-control/



——————————————————————————————————————————————————————————————————

欢迎大神光临菜鸟博客,希望能得到各位大神在编码方面的指引,同时欢迎与我一样刚进入编程世界的朋友一起讨论学习!相信前进的道路上,有你们,编程世界会更加精彩!


0 0
原创粉丝点击