winform-DataGridView常用设置

1,常用扁平化设置

 

【1.1】不显示行标题

 

 【1.2】自动列宽

 

 

【1.3】隐藏滚动条

 

 【1.4】默认列标题

 

 【1.5】表头样式

 

 

 

 【1.6】行高和列宽自动调整

 

 【1.7】冻结列

 

 

 2,设置列宽

【1.1】

DataGridView有一个属性AutoSizeColumnMode,他有很多枚举值:

1、AllCells 调整列宽,以适合该列中的所有单元格的内容,包括标题单元格。  
2、AllCellsExceptHeader 调整列宽,以适合该列中的所有单元格的内容,不包括标题单元格。  
3、ColumnHeader 调整列宽,以适合列标题单元格的内容。  
4、DisplayedCells 调整列宽,以适合当前屏幕上显示的行的列中的所有单元格的内容,包括标题单元格。  
5、DisplayedCellsExceptHeader 调整列宽,以适合当前屏幕上显示的行的列中的所有单元格的内容,不包括标题单元格。  
6、Fill 调整列宽,使所有列的宽度正好填充控件的显示区域,只需要水平滚动保证列宽在DataGridViewColumn.MinimumWidth 属性值以上。相对列宽由相对 DataGridViewColumn.FillWeight 属性值决定。  
7、None 列宽不会自动调整。  
8、NotSet 列的大小调整行为从 DataGridView.AutoSizeColumnsMode 属性继承。

【1.2】几列设置固定宽度,其中一列填充显示区域

【方法1:代码实现】:

 【方法2:控件界面上设置】:

 

 

 

 3,问题:选中过的行背景色都变蓝色了,无法消除。

 

 找到问题了:这个问题有点坑,浪费了我2个多小时才找到问题的。

 

 4,DataGridView绑定了List<T>集合,清除所有行问题

        private void Update_dgv_boltData(List<Shape> listShapes)
        {
            if (listShapes == null || listShapes.Count <= 0)
            {
                //清除所有行

                //方法1,报错
                //dgv_boltData.Rows.Clear();

                //方法2,报错
                //DataTable dt = (DataTable) dgv_boltData.DataSource;
                //dt.Rows.Clear();
                //dgv_boltData.DataSource = dt;

                //方法3,绑定空的List可行
                listShapes=new List<Shape>();
                List<IUserData> list = new List<IUserData>();
                foreach (var item in listShapes)
                {
                    list.Add(item.UserData);
                }
                dgv_boltData.DataSource = list;
            }
            else
            {
                List<IUserData> list = new List<IUserData>();
                foreach (var item in listShapes)
                {
                    list.Add(item.UserData);
                }
                dgv_boltData.DataSource = list;
            }
        }

  

 

 

posted @ 2022-01-30 20:36  包子789654  阅读(598)  评论(0编辑  收藏  举报