无法以编程方式更改gridview列宽

时间:2009-06-01 13:14:30

标签: c# winforms gridview .net-2.0

在我的Windows窗体上,我需要以编程方式设置网格视图中列的宽度。我使用以下代码:

this.dgridv.Columns[columnName].Width = columnWidth;

上面的stmt运行没有任何错误。但是,列宽保持不变。如果我插入一个断点并检查stmt运行后的宽度值,它仍然是100,我猜这是datagrid列宽的默认值。

除此之外我还需要做些什么吗?在更改列宽之前是否需要设置任何值?

对此的任何帮助或指示都非常感谢。

谢谢:)

3 个答案:

答案 0 :(得分:2)

您是否已将AutoSizeColumnsMode设置为Fill?

如果您需要设置FillWeight属性。这不是一个简单的宽度,而是此列占用的width / no. columns的比例。

如果您没有调整列的大小,则为100.0。

如果列已加宽,则将> 100.0。

如果该列已经缩小,它将是< 100.0。

根据定义,扩大一列会缩小其余部分。

答案 1 :(得分:0)

这有效:

this.dgridv.Columns[columnName].AutoSizeMode= DataGridViewAutoSizeColumnMode.None;
this.dgridv.Columns[columnName].Width = columnWidth;

要重置它,我正在使用:

dgvCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;

答案 2 :(得分:0)

dataGridView1.Columns[index].Width = 150;

这行代码将以编程方式设置列宽。