在使用DataGridView控件来显示数据的时候,如果没有设置列大小自适应,那么出现的情况就是下面:
如果设置了列大小自适应,结果就会变为:
这样,从外观上看起来会舒服很多。
如何实现?
因为调整自适应在一个程序中会经常用到,所以我把它的代码封装成了一个方法,放在了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);