Winform中DataGridView设置前景色、单元格背景色、标题栏样式、禁止改变高宽、不显示空白行、清除选中样式、填充数据源、设置标题、设置单列宽度

发布时间 2023-03-27 18:02:39作者: 霸道流氓

场景

Winform中使用DataGridView实现加载数据并显示在led大屏中。

需要设置整个DataGridView的前景色、背景色、单元格颜色、标题栏样式、禁止

改变行高、列宽、不显示新增行、取消选中样式等。

 

 

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

1、DateGridView实现黑底红色,可通过设置、背景色、前景色和字体颜色、

默认列标题样式实现。

BackgroundColor设置背景色

GridColor设置网格线颜色

BorderStyle设置边框样式,这里是None代表无

RowHeadersVisables设置是否显示包含行标题的列,这里是False

EnableHeadersVisualStyles设置为false时自己设置的行列标题样式才能生效,

否则使用系统默认的样式

ColumnHeadersBorderStyle应用于列标题的边框样式,这里是None

 

 

2、然后再在窗体load事件中再设置一些样式

            dataGridView1.ForeColor = Color.Red;
            dataGridView1.DefaultCellStyle.BackColor = Color.Black;
            dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Black;
            dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.Red;

            // 禁止用户改变DataGridView的所有列的列宽
            dataGridView1.AllowUserToResizeColumns = false;
            //禁止用户改变DataGridView所有行的行高
            dataGridView1.AllowUserToResizeRows = false;
            // 禁止用户改变列头的高度  
            dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
            // 禁止用户改变列头的宽度  
            dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;
            //不显示空白新增行
            dataGridView1.AllowUserToAddRows = false;

3、DataGridView设置取消选中样式

重写SelectionChanged事件

事件实现

        private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            dataGridView1.ClearSelection();
        }

4、填充数据源

封装一个数据源实体对象

    class ResultVo
    {
        [Description("序号")]
        public int number { get; set; }
        [Description("班组")]
        public string team { get; set; }
        [Description("方向")]
        public string direction { get; set; }
        [Description("车号")]
        public string carNumber { get; set; }
        [Description("司机")]
        public string driver { get; set; }


        public ResultVo()
        {

        }

        public ResultVo(int _number, string _carNumber, string _driver)
        {
            number = _number;
            carNumber = _carNumber;
            driver = _driver;
        }
        public ResultVo(int _number, string _carNumber)
        {
            number = _number;
            carNumber = _carNumber;
        }

        public ResultVo( string _carNumber, string _driver)
        {          
            carNumber = _carNumber;
            driver = _driver;
        }

        public ResultVo(int _number,string _team,string _direction,string _carNumber,string _driver)
        {
            number = _number;
            team = _team;
            direction = _direction;
            carNumber = _carNumber;
            driver = _driver;
        }
    }

然后设置数据源

            List<ResultVo> list = new List<ResultVo>() {
                new ResultVo(1,"掘进1", "2201测测测测测测", "营R0001","张三"),
                new ResultVo(2,"掘进1", "2201测测测测测测555", "营R0001","张三四"),
             };

            //绑定数据源
            dataGridView1.DataSource = list;

5、设置每一列的标题

            if (dataGridView1.Columns.Count>4) {
                //设置标题
                dataGridView1.Columns[0].HeaderText = "序号";
                dataGridView1.Columns[1].HeaderText = "班组";
                dataGridView1.Columns[2].HeaderText = "方向";
                dataGridView1.Columns[3].HeaderText = "车号";
                dataGridView1.Columns[4].HeaderText = "司机";
            }

6、设置每一列的宽度

            if (dataGridView1.Columns.Count>=4) {
                dataGridView1.Columns[0].Width = 40;
                dataGridView1.Columns[1].Width = 80;
                dataGridView1.Columns[2].Width = 150;
                dataGridView1.Columns[3].Width = 80;
                dataGridView1.Columns[4].Width = 80;
            }