在 C# WinForm 扩展指定列宽适应DataGridView显示行数 一文中,初步将如何在显示行数不大于Grid可显行数的情况下自动扩展Grid列宽内容作了简单介绍。后来,又碰到了Grid中间隔有不可显示列的情形,故将代码进行了扩展。
为了方便使用,特将Grid的初始设置选择单独列出,方便调用。(注:本方法仅适合Grid的滚动条只有垂直情况下,不包括水平滚动条情况,也就是说,各可显列均于Grid中显示)
方法如下:
1.在初始化Grid时,在完成你的原初始代码后,增加一句如下代码调用即可:
......
ReSetGridShowWidth(dataGridView1);
......
/// <summary>
/// 根据Grid可显列重设宽度(仅垂直滚动条下)
/// </summary>
/// <param name="dgv">Grid对象</param>
private void ReSetGridShowWidth(DataGridView dgv)
{
int nColumnOfFormDisplay = dgv.DisplayedColumnCount(false);
int gridWidth = 0;
int nCount = 0;
foreach (DataGridViewColumn col in dgv.Columns)
{
col.MinimumWidth = col.Width;
nCount