0

我发现这段代码(一个循环)可以将所有ColumnHeaders的总宽度适合一个listview的宽度(当然如果ListView的宽度足够大,否则会显示一个水平滚动条)。

foreach(ColumnHeader ch in myListView.Columns){
     ch.Width = -2;
}

我刚刚尝试将值 -2 更改为其他一些值,但它没有用。我需要对这段代码进行解释,为什么它必须是 -2 而不是其他的?

顺便说一句,如果可能的话,您是否知道任何其他(标准?)方法(使所有 ColumnHeaders 的总宽度适合 ListView 的宽度)?

您的帮助将不胜感激!

4

1 回答 1

1

除了您发现的之外,没有自动的方法可以做到这一点。这记录在http://msdn.microsoft.com/en-us/library/windows/desktop/bb761163(v=vs.85).aspx尽管您看不到 LVSCW_AUTOSIZE_USEHEADER 的值,它是 -2。

为了自己做到这一点,您需要对正在调整大小的 ListView 做出反应,并自己计算宽度。有一个调整大小的事件。然后,您使用 listview.ClientSize.Width - SystemInformation.VerticalScrollBarWidth 作为滚动条的总宽度。

于 2013-04-18T20:07:24.780 回答