C# DataGridVew 列自适应宽度

在使用DataGridView控件来显示数据的时候,如果没有设置列大小自适应,那么出现的情况就是下面:

C# DataGridVew 列自适应宽度_第1张图片

如果设置了列大小自适应,结果就会变为:

 C# DataGridVew 列自适应宽度_第2张图片

这样,从外观上看起来会舒服很多。 

如何实现?

 

因为调整自适应在一个程序中会经常用到,所以我把它的代码封装成了一个方法,放在了Model类中,哪里需要直接调用就OK。

Model类中:

 

public void AutoSizeColumn(DataGridView DGVFiles)
        {
            int width = 0;
            //使列自适应宽度
            //对于每一列都调整
            for (int i = 0; i < DGVFiles.Columns.Count; i++)
            {
                //将每一列都调整为自动适应模式
                DGVFiles.AutoResizeColumn(i, DataGridViewAutoSizeColumnMode.AllCells);
                //记录整个的宽度
                width += DGVFiles.Columns[i].Width;
            }
            //判断调整后的宽度与原来设定的宽度的关系,如果是调整后的宽度大于原来设定的宽度
            //则将每列都自动调整模式设置为显示的列即可
            //如果是小于原来设定的宽度,将模式改为填充
            if (width > DGVFiles.Size.Width)
            {
                DGVFiles.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
            }
            else
            {
                DGVFiles.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            }
            //冻结某列从左开始
            DGVFiles.Columns[1].Frozen = true;
        }

调用: 

Model model = new Model();
                model.AutoSizeColumn(UserInfoDGV);

 

你可能感兴趣的:(----机房重构)