C#ListView第一列太大了

时间:2010-07-07 15:53:53

标签: c# listview

我有这个:

lvPalette.Columns.Add("Code", -2, HorizontalAlignment.Center);
lvPalette.Columns.Add("Attendu", -2, HorizontalAlignment.Center);
lvPalette.Columns.Add("Chargé", -2, HorizontalAlignment.Center);
lvPalette.Columns.Add("Validé", -2, HorizontalAlignment.Center);
lvPalette.Columns.Add("Description", -2, HorizontalAlignment.Center);

最终使第一列与控件本身一样大,而不是像标题文本一样大。那是为什么?

我尝试将第一列widt设置为100,然后将第二列设置为将所有空间设置为控制宽度。

编辑:我想我想为什么会这样做。似乎将宽度设置为-2迫使标题占用整个控制宽度空间。因此,当添加第一列时,它是唯一存在的列,因此它占用整个控制空间,然后添加其他列并设置为正确的大小。

所以问题是,我怎么能阻止它这样做呢?

4 个答案:

答案 0 :(得分:2)

根据您的观察结果以及我对第一列应用大小的经验,我首先添加了一个扔掉的列,并在添加第二列时将其删除。第二列是要保留的列。然后我为第一列做了删除,并添加了其余的有效列。你知道什么,尺寸很好!

if (!pastTossOutCol) {
    listView1.Columns.RemoveAt( 0 );
    pastTossOutCol = true;
}

也许它会帮助花费数小时努力使其发挥作用的其他人。

答案 1 :(得分:0)

在将列添加到列表视图后,尝试在每个列上调用AutoResize方法。

答案 2 :(得分:0)

我想我知道为什么会那样做。似乎将宽度设置为-2迫使标题占用整个控制宽度空间。因此,当添加第一列时,它是唯一存在的列,因此它占用整个控制空间,然后添加其他列并设置为正确的大小。

所以问题是,我怎么能阻止它这样做呢?

答案 3 :(得分:0)

除了设置值之外,似乎无法阻止此行为。

我找到了一种通过标题和字段进行自动调整然后选择具有最大宽度的方法,但它有一个不好的方面,它强制3调整大小,这不是图形上的好。