强制调整DataGridView列的大小

时间:2010-12-07 15:32:31

标签: c# winforms

我有一个带有DataGridView元素的简单表单。在构造函数中,添加了网格列并设置了DataTable。当我然后调用AutoResizeColumns()时,它不会像调用例如调用时那样调整列的大小。一个按钮事件。 代码看起来像这样(简化):

public MyDialog()
{
   InitializeComponent();
   dgv.Columns.AddRange(SomeClass.MyColumns);
   dgv.DataSource = SomeClass.Table;
   // This doesn't work:
   dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}

AutoResizeColumns()通常可以正常工作,但不会在那时工作。顺便说一句,我需要这个来实现像请求/描述here这样的行为。有什么想法吗?

4 个答案:

答案 0 :(得分:13)

在设置自动调整模式之前,我遇到了同样的问题:

dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

答案 1 :(得分:8)

此外,我认为在调整大小之前对象需要是可见的...出于某种原因,绘画似乎不像人们期望的那样发生。

答案 2 :(得分:0)

AutoResizeColumns()包含数据后,您需要使用DataGridView。这就是原因。在致电SomeClass.Table

之前,请确保AutoResizeColumns()获取数据

答案 3 :(得分:0)

您还需要设置DataGridView的AutoSizeColumnsMode