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

问题描述 投票:6回答:4
For c = 0 To grd.Columns.Count - 1
    grd.Columns(c).Resizable = DataGridViewTriState.True
Next c

这允许我的DataGridView中的所有列都可以调整大小,除了最后一列。为什么?我得到了一个可调整大小的鼠标指针...但你只能使列SMALLER,永远不会更宽。

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

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

.net vb.net winforms datagridview datagridviewcolumn
4个回答
0
投票

您不能使最后一列更宽,因为它已经填充了控件中的所有可用空间!

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


0
投票

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


0
投票

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

一种选择是将最后一列的AutoSizeMode设置为'Fill',将其他列设置为其他模式,例如'Not Set'。这样做会使得当您调整倒数第二列的右边缘时,最后一列的左边缘将自动填充该空间。


-1
投票

为什么不将额外的列集添加到零宽度,以便用户可以调整您真正想要显示的最后一列?我知道这有点笨拙!如果你关心,你可能可能是额外零长度单元格的resizable属性= false,不允许调整大小。那种方法对我来说不合适。需要将最后一个字段绑定到某个东西,或者在它之前的字段(这是我添加假冒字段之前的最后一列)将不允许调整大小。

对我来说,问题是由于我修改了我的上一列的AutoSizeMode属性为AllCells(这是一个DataGridViewTextBoxColumn),建议修复以生成多列文本框。但这并不像我需要的那样工作,所以我采用了不同的方式(通过创建动态文本框并将其放在我想要的位置,但是离开了AutoSizeMode = AllCells。

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

© www.soinside.com 2019 - 2024. All rights reserved.