有没有一种值得自动调整datagridview列宽的方法?

时间:2012-06-22 22:41:22

标签: c# winforms datagridview

我希望我的DataGridView显示整个标题文本(从不剪辑或截断它)。

在某些情况下,我也希望它对列中的值也做同样的事情(它们是相对较短的值,例如“76长号”,“3.141592653589793”,“野性边界之王”等等。

我知道我可以通过名称或索引专门引用每一列并设置一个值或百分比,但我希望它自动调整大小以使其足够宽,以显示整个标题文本。 / p>

2 个答案:

答案 0 :(得分:2)

您可以迭代DataGridView的列并设置其AutoSizeMode属性,如下所示:

 foreach(DataGridViewColumn column in dataGridView1.Columns)
 {
     column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
 }

DataGridViewAutoSizeColumnMode中还有其他选项。 AllCells选项调整所有列以适合所有单元格的内容,包括标题单元格。

要在您的代码中实现此功能,我建议您将其放在静态方法中,以便您可以重用它并为其他DataGridViews设置列:

 public static void SetColumns(DataGridView dgv)
 {
    foreach(DataGridViewColumn column in dgv.Columns)
    {
       column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
    }
 }

如果您需要DefaultCellStyles等,可以在其中添加其他常规列修改

答案 1 :(得分:1)

这种扩展方法(我自己的)可以回答你的问题 - 甚至更多 {标题,可见/不可见列,宽度,高度和滚动条} https://stackoverflow.com/a/10867026/967770