DataGridView可调整大小的列,但最后一列无法调整大小?

时间:2011-05-10 14:10:31

标签: .net vb.net winforms datagridview datagridviewcolumn

For c = 0 To grd.Columns.Count - 1
    grd.Columns(c).Resizable = DataGridViewTriState.True
Next c

这允许我的DataGridView中的所有列都可以调整大小,除了最后一列。为什么? 我 DO 获得可调整大小的鼠标指针...但您只能将列 SMALLER ,而不是 WIDER

(如果我尝试使用VB.net IDE将所有列设置为Resizable,则同样的问题)

我在这里做错了什么?我不应该能够调整我想要的 ANY 列,更大还是更小?

4 个答案:

答案 0 :(得分:0)

您无法使 last 列更宽,因为它已经填充了控件中的所有可用空间!

与中间的其他列不同,它只是从列向右偷取空间,最后一列右侧没有列可以从中偷取空间。由于它无处可去,因此控件只会阻止您调整最后一列的大小。

答案 1 :(得分:0)

我遇到了同样的问题 - 我无法调整DataGridView中的最后一列(可调整大小的属性设置为'True')。我已将'填充模式'设置为'显示的单元格'。当我将该设置更改为“未设置”时,我通常可以调整最后一列的大小。

答案 2 :(得分:0)

您可能想要的是让用户调整最后一列的左边缘的大小,而不能调整最后一列的右边缘的大小。

一个选项是将最后一列的AutoSizeMode设置为“填充”,将其他列设置为其他模式,例如“未设置”。这样做可以使您在调整倒数第二列的右边缘大小时,最后一列的左边缘将自动填充该空间。

答案 3 :(得分:-1)

为什么不添加一个设置为零宽度的额外列,以便用户可以调整您真正想显示的最后一个列的大小?我知道这有点麻烦!如果您在意,您可能可以将额外零长度单元格的resizable属性= false设置为不允许调整大小。 该方法对我来说不合适。需要将最后一个字段绑定到某些东西,否则将其之前的字段(这是我添加伪造的字段之前的最后一列)进行绑定。< / p>

对我来说,问题是由于我在建议创建多列文本框的修复程序中将最后一列的AutoSizeMode属性更改为AllCells (这是一个DataGridViewTextBoxColumn)而引起的。但这并不能按照我需要的方式工作,因此我做了另一种方式(通过创建动态文本框并将其放在我想要的位置,但离开了AutoSizeMode = AllCells。

当我在“最后一列”上设置AutroSizeMode = NotSet时,DataGridView允许用户立即调整最后一列的大小!