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的内容。

 

 

 

posted on 2022-10-30 08:02  hanzq_go  阅读(3940)  评论(0编辑  收藏  举报

导航