本文主要是讲解datagridview的基本用法和动态绑定的数据
动态绑定的情况下就不需要在datagridview组件的属性里设置表头,这样是为了避免双表头现象的出现。
1.DataGridView的几个比较实用的方法
//取消左侧第一列的空白列
dataGridView.RowHeaderVisible = false;
//取消最后一行空白列
dataGridView.AllowUserToAddRows = false
//去掉选中时背景色是蓝色的效果
dataGridView.DefaulCellStyle.SelectionBackColor = Color.LightGray;
dataGridView.DefaulCellStyle.SelectionBackColor = Color.Black;
//设置DataGridView的背景色
dataGridView.RowsDEfaultCellStyle.BackColor = Color.LightGray;
//禁止改变DataGridView的行高与列宽
dataGridView.AllowUserToResizeRows = false;
dataGridView.AllowUserToResizeColumns = false;
//禁止点击表头自动排序
for(int i =0;i < dataGrideView.Columns.Count; i++){
dataGrideViewColumns[i].SortMode = DataGridViewColumnSortMode.NOtSortable;
}
//设置列宽随着单元格内容扩张
dataGridView。Columns.AutoSizeMode = DataGridViewSizeColumnMode.AllCells;
//禁止单元格内容被修改
dataGridView.Columns.ReadOnly = true;
//设置列宽为200
dataGridView.Columns[0].Width = 200;
//设置单元格字体居中前要把Sortmode改为Not
dataGridView.Columns[1].SortMode = DataGridViewColnmnSortMode.NotSortable;
dataGridView.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
//单元格第0行加粗
dataGridView.Rows[0].DefaultCellStyle.Font = new Font(DataGridView.DefaultFont,FontStyle.Bold);
/*
如果你的DataGridView控件上的数据是直接在控件中添加的,上面的内容可以通过控件里的属性修改,如果采取的数据绑定的方式,那么修改一些属性都是需要用代码来实现。
*/
2.DataGridView数据绑定
//定义一个二维数组
string [,] forms = {{"张三","男","23"},{"李四","男","18"},{"王五","女","26"}};
//PS:数据源不一定是二维数组,可以是其他数组或者数据库
//定义DataGridView的表头
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Sex");
dt.Columns.Add("Age");
dt.Columns.Add("Bool",typeof(System.Boolean));//这一列是添加的一个checkBox
for(int i = 0; i < forms.GetLength(0);i++){ //行数
DataRows dr = dt.NewRow();
for(int j = 0; j < forms.GetLength(1);i++){ // 列数
dr[j] = forms[i,j];
dt.Rows.Add(dr);
}
this.dataGrideView.DataSource = dt;//绑定数据源,这一行必须要有不然实现不了绑定数据的效果
}
3.下面功能是现在dataGridView控件上展示一部分的数据,其中某一行的数据要通过点击按钮才能展示出来,是第二部分代码的延伸。
public void ShowData(){
//先定义一个string数组,
var items = new string[]{"张三","李四","王五"};
//把已知的名字放进这个数组里,因为我们是通过找到这个名字来实现的
for(int i =0; i < items.Length; i++){
/*
我这里的register.ReadFormatValue()是因为本身的数据源里面是包含Value值得,只不过是我写的项目要求是要先展示其他数据,Value值要通过点击按钮才会展示
*/
var register = items[i];
dataGri.Rows[i].Cells[1].Value = register.ReadFormatVlalue(); //cells里面放的数字是具体某一列
}
}
//调用方法
public void btnTest_Click(object sender, EventArgs e){
this.ShowData();
}
注意: 以上情况希望看的小伙伴要结合自身所写项目的实际需求来写,我哪里写的不好的地方还请小伙伴提出来,下次改进。