datagridview /自动调整大小的列和行的问题

时间:2018-08-15 04:38:50

标签: c# datagridview

每次尝试调整列和行的大小时,我都会遇到很大的问题。我正在尝试使用以下功能自动调整列和行的大小:

"2"

如果我在将dataGridView1.AutoResizeColumns(); dataGridView1.AutoResizeRows(); 传递到datasource之后放了这两行,则该行不起作用。我试图处理dataview,并且认为它不起作用。我试图在DataSourceBindingComplete中设置它,但它不起作用。然后 我试图做一个按钮

form.designer.cs

当我单击按钮时,一切运行正常!!!它调整了我所有列和行的大小。但我不要这个。我要自动。 你们能帮我一下,解释为什么会这样吗?没道理,在原始代码中它不起作用,但是在单独的按钮中它起作用。

3 个答案:

答案 0 :(得分:0)

这对我有用。

在设计器中从“无”将AutoSizeColumnsMode和AutoSizeRowsMo​​de值设置为AllCells。

答案 1 :(得分:0)

在设置来源之前,是否尝试过设置DataGridViewAutoSizeColumnsMode

private void button1_Click(object sender, EventArgs e)
{
    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
    dataGridView1.DataSource = SourceList; // Your Collection here
    dataGridView1.AutoResizeRows();
} 

答案 2 :(得分:0)

很抱歉,我花了一年多的时间才看到这篇文章...

这就是我要做的“自动”操作。

private void AutoResizeGrid()
    {
        if (dataGridView.Columns.Count < 1) return;
        dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);
        dataGridView.AutoResizeRows(DataGridViewAutoSizeRowsMode.DisplayedCells);
    }


    private void MatrixDataGridView_ClientSizeChanged(object sender, EventArgs e)
    {
        if (!this.Visible) return;
        AutoResizeGrid();
    }

    private void MatrixDataGridView_Scroll(object sender, ScrollEventArgs e)
    {
        if (!this.Visible) return;
        AutoResizeGrid();
    }

在添加此代码之前,我进入了设计器,并将“ AutoSizeColumnsMode”和“ AutoSizeRowsMo​​de”都设置为“ DisplayedCells”。当网格首次接收数据时,这将导致自动化。上面的代码在发生调整大小或滚动事件时会导致自动化。