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;
}
}

浙公网安备 33010602011771号