1,常用扁平化设置
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; } }