您的位置:首页 > 编程语言 > C#

c# listView中列宽随列中的内容自动调整

2013-11-20 20:23 405 查看
1、创建一个类 ListViewAutoChange 作用:自动调整ListView的列宽

代码如下:(内容很容易理解,没加注释)

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace XmlResolve
{
class ListViewChange
{
//自动调整ListView的列宽的方法
public void AutoResizeColumnWidth(ListView lv)
{
int count = lv.Columns.Count;
int MaxWidth = 0;
Graphics graphics = lv.CreateGraphics();
int width;
lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
for (int i = 0; i < count; i++)
{
string str = lv.Columns[i].Text;
MaxWidth = lv.Columns[i].Width;

foreach (ListViewItem item in lv.Items)
{
str = item.SubItems[i].Text;
width = (int)graphics.MeasureString(str, lv.Font).Width;
if (width > MaxWidth)
{
MaxWidth = width;
}
}
if (MaxWidth <= 150)
{
lv.Columns[i].Width = MaxWidth;
}
else
{
lv.Columns[i].Width = 150;
}
}
}
}
}

2、主窗体中调用即可实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: