我有一个C#ListView,我想根据列的内容自动调整列宽。
我知道将列宽设置为-1会使列在最宽成员的长度上调整大小。 我知道将列宽设置为-2会使列的长度与列标题的长度相符。 如何将列的大小设置为两者中的较大者?
我可以这样做:
for (int i = 0; i < listView.Columns.Count; ++i)
{
listView.Columns[i].Width = -1;
int width1 = listView.Columns[i].Width;
listView.Columns[i].Width = -2;
if (width1 > listView.Columns[i].Width)
listView.Columns[i].Width = -1;
}
但它确实看起来非常低效。
有没有人有答案?
答案 0 :(得分:5)
你应该试试
ListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
即使它显示“ColumnHeaderAutoResizeStyle.HeaderSize”,它也应该自动调整大小到列中的最大项目,无论是标题还是列成员