ListView列标题自适应大小?

3

我有一个WinForm应用程序,其中包含一个列表视图。我希望能够在窗口变大或变小时调整最右侧列的宽度。这是否可能?如果是,它由哪个属性控制?


可能是重复的问题:VB.Net: Resizing ListBoxView Column When Form Resizes - Hans Passant
1个回答

0

ListView有一个Columns属性,它是一个包含列的集合,每个列都有一个Width属性:

var widthOfLastColumn = listView.Columns[ listView.Columns.Count - 1 ].Width;

listView.Columns[ listView.Columns.Count - 1 ].Width = newWidth;

为了保持最后一列的宽度以填充其余的列表视图,您可以在表单的Resize事件中添加以下内容:
var width = 0;
for (int i = 0; i < listView.Columns.Count - 1; i++)
    width += listView.Columns[i].Width;

listView.Columns[ listView.Columns.Count - 1 ].Width =
    listView.ClientSize.Width - width;

如果在列之间有填充,则您可能需要减去更多的值以避免水平滚动条 - 我没有测试过。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接