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

后端 未结 24 3028
孤城傲影
孤城傲影 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:47

    foreach (DataGridViewColumn c in dataGridView.Columns)
        c.Width = c.GetPreferredWidth(DataGridViewAutoSizeColumnMode.AllCells, true);
    

    This should work whether the dataGridView has been displayed or not (i.e. even if called from the class constructor).

    The same method, but with DataGridViewAutoSizeColumnMode.DisplayedCells, fails in the above case for the obvious reason - no cell has been displayed yet! For some non-obvious reason, AutoResizeColumns also fails in this case.

提交回复
热议问题