How do you automatically resize columns in a DataGridView control AND allow the user to resize the columns on that same grid?

后端 未结 24 3036
孤城傲影
孤城傲影 2020-11-29 18:03

I am populating a DataGridView control on a Windows Form (C# 2.0 not WPF).

My goal is to display a grid that neatly fills all available width with cells - i.e. no un

24条回答
  •  迷失自我
    2020-11-29 18:31

    Resume of the question:
    Have column width adapt to the content (with different method across the column),
    but then allow the user to set the column width...

    Developing from Miroslav Zadravec's answer, for me what worked was immediately using the auto computed column.Width to set... column.Width!

    foreach (DataGridViewColumn column in dataGridView.Columns)
    {
        if (/*It's not your special column*/)
        {
            column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            column.Width = column.Width; //This is important, otherwise the following line will nullify your previous command
            column.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet;
        }
    }
    
    //Now do the same using Fill instead of AllCells for your special column
    

    This is tested to work when the DataGridView is already created, using a trick like this.

提交回复
热议问题