DatagridView控件2——绑定数据源,设置列类型为CheckBox,ComboBox,Button,Link
DatagridView2
实现内容:
1、绑定数据源
2、手动编辑DatagridView属性后并绑定数据源
3、设置列类型为CheckBox
4、设置列类型为ComboBox
5、设置列类型为Button和Link
实现效果如下:
1、绑定数据源
首先设置dataGridView1.AutoGenerateColumns = true;//自动创建列;
第二步:dataGridView1.DataSource = dal.GetAllStudents();//绑定数据源
完成以上两部即可以实现DatagridView的数据显示,但是此时显示的列名称是数据源的列名,如果需要指定列名称可以通过以下方法:
//修改列名称 dataGridView1.Columns[0].HeaderText = "姓名"; dataGridView1.Columns[1].HeaderCell.Value = "年龄"; dataGridView1.Columns[2].HeaderText = "学号"; dataGridView1.Columns[3].HeaderText = "班号"; dataGridView1.Columns[4].HeaderText = "性别"; dataGridView1.Columns[5].HeaderText = "电话";
2、手动编辑DatagridView属性后并绑定数据源
手动编辑可以直观的编排DatagridView显示的内容:
有些数据源中的列不想显示在DatagridView中,可以通过以下两步实现:
第一步,dataGridView2.AutoGenerateColumns = false;//关闭自动创建列
第二步,在编辑列时,只选择需要显示的列,不需要显示的可以不编辑,比如学号不需要显示就不编辑,如下:
最后,为了将数据显示在DatagridView中,还需要DataPropertyName属性与数据源的属性对应,否则不能正常显示,如下:
总结:一般情况下手动编辑列需要设置的三个属性分别是Name,HeaderText,DataPropertyName。
HeaderText决定DatagridView中显示的列标题的名称;
Name决定DatagridView的列名称;
DataPropertyName决定绑定到数据源的属性。
3、设置列类型为CheckBox
将学生的性别设置为CheckBox,当性别为男时选中,性别为女时不选中
需要设置ColumnType属性为DataGridViewCheckBoxColumn,然后再设置FalseValue和TrueValue
4、设置列类型为ComboBox
设置ColumnType=DatagridViewComboBoxColumn
数据源中的数据是ClassId,但是希望DataGridView中显示班级名称。
需要在代码中设置DataSource、DisplayMember和ValueMember属性
dataGridView2.AutoGenerateColumns = false;//自动创建列 dataGridView2.DataSource = dal.GetAllStudents();//绑定数据源 DataGridViewComboBoxColumn dgvComboBox = dataGridView2.Columns["ClassId"] as DataGridViewComboBoxColumn; dgvComboBox.DataSource = dal.GetAllClass(); dgvComboBox.DisplayMember = "ClassName"; dgvComboBox.ValueMember = "ClassId";
5、设置列类型为Button和Link
Button和Link的设置方法相同,这里以Link举例。
这里重点需要设置ColumnType,Text和UseColumnTextForLinkValue属性
Text用于设置link显示的内容;
UseColumnTextForLinkValue=true时显示Text的内容。