需求描述:在数据绑定控件DataGridView中设置不同的行的颜色,要求错误行有醒目的红色,正确行是白色,选中行是绿色。
解决办法:经过查询MSDN得知在数据绑定控件DataGridView中有属性DefaultCellStyle属性,这个属性是用于获取和设置应用于数据绑定控件的默认单元格样式。设置的代码如下所示:
//失败列表添加一行数据 --
private void dtErrAdd(string code)
{
if (dtErrorList.Select("失败面牌='" + code + "'").Length <= 0)
{
dtErrorList.Rows.Add(code);
dataGridView2.DataSource = dtErrorList;
dataGridView2.DefaultCellStyle.BackColor = Color.Red; //设置失败面牌的行默认颜色 --主要问题代码
dataGridView2.DefaultCellStyle.SelectionBackColor = Color.Red; //设置失败面牌的选中行的颜色 --主要问题代码
}
}
学习:枚举值除了有BackColor(背景色),SelectionBackColor(选中行背景色),还有SelectionForeColor(选中行前景色,一般是字体颜色)
另外一些常见的数据绑定控件的格式颜色,RowHeaderDefaultCellStyle(行头默认单元颜色),AlternatingRowsDefaultCellStyle(更该行的默认单元颜色),ColumHeaderDefaultCellStyle(设置列头的单元格颜色) , DefaultCellStyle(默认单元格颜色)
需求描述:要求清空DataGridView对象的数据后重新绑定进来(表结构不变,表内容为空)。
若使用dataGridView1.Rows.Clear()的方法,会删除表结构。(该方法不行)
设置Datagridview对象的Datasource属性为null ,也会把标题列也删除。(该方法不行)
解决办法:
DataTable dt = (DataTable)dataGridView1.DataSource; //将之前的DataGridview对象绑定的数据显示转换为DataTable
dt.Rows.Clear(); //清空所有的行,保持表结构
dataGridView1.DataSource = dt; //重新绑定到DataGridview对象中。
思路: 想要对DataGridview控件清空数据还要保持表结构,只能重新绑定清空后的DataTable对象,具体做法使用是将DataGridView对象绑定的数据显示转换成DataTable对象, 对DataTable对象清空数据,从新绑定DataGridView对象。
需求描述:使用DataGridView控件时,要求将添加的列填充所有区域,未填充前的效果。
解决办法:使用AutoSizeColumnModel属性可以设置列宽度,填充后的效果。
学习内容:AutoSizeColumnModel属性的枚举值:
- AllCells 调整列宽,以适合该列中的所有单元格的内容,包括标题单元格。
- AllCellsExceptHeader 调整列宽,以适合该列中的所有单元格的内容,不包括标题单元格。
- ColumnHeader 调整列宽,以适合列标题单元格的内容。
- DisplayedCells 调整列宽,以适合当前屏幕上显示的行的列中的所有单元格的内容,包括标题单元格。
- DisplayedCellsExceptHeader 调整列宽,以适合当前屏幕上显示的行的列中的所有单元格的内容,不包括标题单元格。
- Fill 调整列宽,使所有列的宽度正好填充控件的显示区域,只需要水平滚动保证列宽在DataGridViewColumn.MinimumWidth 属性值以上。相对列宽由相对 DataGridViewColumn.FillWeight 属性值决定。
- None 列宽不会自动调整。
- NotSet 列的大小调整行为从 DataGridView.AutoSizeColumnsMode 属性继承。
需求描述:在使用DataGridView控件时候,会出现一个带星号的空行,要求去掉带*号的行,未去除*号效果。
解决办法:设置AllowUserToAddRows属性值为false ,去除*号效果。
学习内容:是否允许用户对DataGridView操作
- AllowUserToAddRows属性:指示是否允许用户增加一行数据, 值为ture和false。
- AllowUserToDeleteRows属性:指示是否允许用户删除一行数据, 值为ture和false。
- AllowUserToOrderColumns属性:指示是否允许用户手动重新放置列, 值为ture和false。
- AllowUserToResizesColumns属性: 指示用户是否可以调整列的大小, 值为ture和false。
需求描述:使用DataGridView控件时,去除左侧空白方块(实际是行头),只要列名。未去除白色方块效果。
解决方法:设置RowHeaderVisible属性可以去除左侧空白方块(行标题),去除行头效果。
学习内容:针对行标题的操作
- RowHeaderBorderStyle : 设置行标题单元格的边框样式。
- RowHeaderDefaultCellStyle :设置应用于行标题单元格的默认样式。
- RowHeaderVisible : 指示是否显示包含行标题的列。
- RowHeaderWidth: 设置包含行标题的列的宽度(以像素为单位)。
- RowHeaderWidthSizeMode :获取或设置一个值,该值指示是否可以调整行标题的宽度,以及它是由用户调整还是根据标题的内容自动调整。(常用AutoSizeToFirstHeader枚举值)。
需求描述;
jiejue