schangxiang@126.com
2025-07-30 a16904bd86f89e97a5e507e08003506c5dd8642e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WMS.Untils
{
    public class FormHelper
    {
        /// <summary>
        /// 自适应宽度
        /// </summary>
        /// <param name="dgView"></param>
        public static void DataGridViewSelfAdaptionWidth(DataGridView dgView)
        {
            int width = 0;
            //对于DataGridView的每一个列都调整
            for (int i = 0; i < dgView.Columns.Count; i++)
            {
                //将每一列都调整为自动适应模式
                dgView.AutoResizeColumn(i, DataGridViewAutoSizeColumnMode.AllCells);
                //记录整个DataGridView的宽度
                width += dgView.Columns[i].Width;
            }
            //判断调整后的宽度与原来设定的宽度的关系,如果是调整后的宽度大于原来设定的宽度,
            //则将DataGridView的列自动调整模式设置为显示的列即可,
            //如果是小于原来设定的宽度,将模式改为填充。
            if (width > dgView.Size.Width)
            {
                dgView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
            }
            else
            {
                dgView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            }
            //冻结某列 从左开始 0,1,2
            //dgViewPersons.Columns[1].Frozen = true;
        }
    }
}