我有一个WinForm应用程序,其中包含一个列表视图。我希望能够做的是每当窗口变大或变小时,最右边的列调整大小(宽度)。这可能吗?如果是这样,它由哪个属性控制?
答案 0 :(得分: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;
如果列之间有填充,您可能需要减去一点以避免水平滚动条 - 我没有测试它。