2016-01-21 33 views
0

当以'None'或'ColumnContent'作为参数调用列表视图的'AutoResizeColumns(...)'方法时,最后一列不会展开以填充整个面板,但是如果' 'AutoResizeColumns(...)'以'HeaderSize'作为最后一列被扩展的参数调用,如果文本是居中或右对齐,这看起来很奇怪。C#ListView最后一列太宽

我已经能够解决这个问题,通过添加一个额外的空白列来扩大和收缩,如果有必要,留下我想要的最后一列,只是涵盖标题的宽度,但这似乎有点乱。他们是一个完美的方式来做到这一点?

谢谢。

Last Column Expanded

Preferred Width

回答

0

的的columnHeader可以被设置在运行时向列内容或标题进行调整。您可以通过宽度属性设置为-2做到这一点(要自动调整列的宽度)

OR

ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)

+0

是的,我目前使用ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)但是这扩展了最后一列以填充可用空间。查看我刚刚添加的图片。 我也尝试将宽度设置为-2,但这似乎扩大了我设置宽度以填充窗口的任何冒号,即使它不是最后一列。 – Slartibartfast

+0

你可以为此做一个,首先设置Listview的宽度说600, 然后设置每个标题列的宽度如前所述 –

+0

对不起,我不太明白。你是说如果我要设置ListView自身的宽度,最后一列将停止扩展以填充空间?这似乎不太可能,但我会给它一个去。 – Slartibartfast

0

一个解决方案,我发现是暂时减少ListView控件的大小,称之为“AutoResizeColumns(...)”,然后重新设置列表视图

的尺寸被: int listViewWidth = listView1.Width; listView1.Width = 0; listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); listView1.Width = listViewWidth;

这似乎有点hackie b至少它不会添加一个多余的列。