开发者

ListView Column Header Liquid Sizing?

I have a Win开发者_JS百科Form application that has a list view in it. What I want to be able to do is have the right most column resize (width) whenever the window gets bigger or smaller. Is this possible? If so, which property is it controlled by?


The ListView has a Columns property, which is a collection containing columns, and each of those columns has a Width property:

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

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

In order to keep the width of the last column such that it fills the rest of the list view, you could add something like the following to your Form’s Resize event:

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;

You may have to subtract a bit more to avoid the horizontal scrollbar in case there is padding between the columns — I didn’t test it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜