DataGridView动态绑定的用法

本文主要是讲解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();
}


注意: 以上情况希望看的小伙伴要结合自身所写项目的实际需求来写,

我哪里写的不好的地方还请小伙伴提出来,下次改进。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值