DataGridView和BindingSource复合控件
实例说明
复合控件是封装在公共容器内的 Windows 窗体控件的集合,这种控件通常称为用户控件,其中包含的子控件称为构成控件。复合控件包含与每个构成控件相关联的所有固有功能,允许程序设计人员有选择地公开和绑定它们的属性。本实例将使用DataGridView控件和BindingSource控件制作复合控件来显示学生档案信息,实例运行效果如图1所示。
图1 DataGridView和BindingSource复合控件
关键技术
本实例实现时主要用到了DataGridView控件和BindingSource组件,下面分别对它们进行详细讲解。
(1)DataGridView控件
DataGridView控件,又称为数据表格控件,它提供一种强大而灵活的以表格形式显示数据的方式,可以使用DataGridView控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图。使用DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据。将数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需设置DataSource属性即可。另外,DataGridView控件具有极高的可配置性和可扩展性,它提供有大量的属性、方法和事件,可以用来对该控件的外观和行为进行自定义。当需要在Windows窗体应用程序中显示表格数据时,首先考虑使用DataGridView控件。若要以小型网格显示只读值或者使用户能够编辑具有数百万条记录的表,DataGridView控件将提供可以方便地进行编程以及有效地利用内存的解决方案。
DataGridView控件的常用属性及说明如表1所示。
表1 DataGridView控件的常用属性及说明
属性 | 说明 |
---|---|
AllowUserToAddRows | 获取或设置一个值,该值指示是否向用户显示添加行的选项 |
AllowUserToDeleteRows | 获取或设置一个值,该值指示是否允许用户从DataGridView中删除行 |
AlternatingRowsDefaultCellStyle | 获取或设置应用于DataGridView的奇数行的默认单元格样式 |
ColumnCount | 获取或设置DataGridView中显示的列数 |
Columns | 获取一个包含控件中所有列的集合 |
CurrentCell | 获取或设置当前处于活动状态的单元格 |
CurrentRow | 获取包含当前单元格的行 |
DataMember | 获取或设置数据源中DataGridView显示其数据的列表或表的名称 |
DataSource | 获取或设置DataGridView所显示数据的数据源 |
MultiSelect | 获取或设置一个值,该值指示是否允许用户一次选择DataGridView的多个单元格、行或列 |
NewRowIndex | 获取新记录所在行的索引 |
RowCount | 获取或设置DataGridView中显示的行数 |
Rows | 获取一个集合,该集合包含DataGridView控件中的所有行 |
SortOrder | 获取一个值,该值指示是按升序或降序对DataGridView控件中的项进行排序,还是不排序 |
DataGridView控件的常用事件及说明如表2所示。
表2 DataGridView控件的常用事件及说明
事件 | 说明 |
---|---|
CellClick | 在单元格的任何部分被单击时发生 |
CellContentClick | 在单元格中的内容被单击时发生 |
CellContentDoubleClick | 在用户双击单元格的内容时发生 |
CellDoubleClick | 在用户双击单元格中的任何位置时发生 |
CellMouseClick | 在用户用鼠标单击单元格中的任何位置时发生 |
CellMouseDoubleClick | 在双击DataGridView中的单元格时发生 |
Sorted | 在DataGridView控件完成排序操作时发生 |
(2)BindingSource组件
BindingSource组件,又称为数据源绑定组件,它主要用于封装窗体的数据源。
BindingSource组件的常用属性及说明如表3所示。
表3 BindingSource组件的常用属性及说明
属性 | 说明 |
---|---|
AllowNew | 获取或设置一个值,该值指示是否可以使用AddNew方法向列表中添加项 |
AllowRemove | 获取一个值,它指示是否可从基础列表中移除项 |
Count | 获取基础列表中的总项数 |
Current | 获取列表中的当前项 |
DataMember | 获取或设置连接器当前绑定到的数据源中的特定列表 |
DataSource | 获取或设置连接器绑定到的数据源 |
Item | 获取或设置指定索引处的列表元素 |
List | 获取连接器绑定到的列表 |
Position | 获取或设置基础列表中当前项的索引 |
Sort | 获取或设置用于排序的列名称以及用于查看数据源中的行的排序顺序 |
SortDirection | 获取列表中项的排序方向 |
SupportsSearching | 获取一个值,它指示数据源是否支持使用Find方法进行搜索 |
SupportsSorting | 获取一个值,它指示数据源是否支持排序 |
BindingSource组件的常用方法及说明如表4所示。
表4 BindingSource组件的常用方法及说明
方法 | 说明 |
---|---|
Add | 将现有项添加到内部列表中 |
AddNew | 向基础列表添加新项 |
ApplySort | 使用指定的排序说明对数据源进行排序 |
Clear | 从列表中移除所有元素 |
CopyTo | 将List中的内容复制到指定数组,从指定索引值处开始 |
Find | 在数据源中查找指定的项 |
GetEnumerator | 检索List的一个枚举数 |
IndexOf | 搜索指定的对象,并返回整个列表中第一个匹配项的索引 |
Insert | 将一项插入列表中指定的索引处 |
MoveFirst | 移至列表中的第一项 |
MoveLast | 移至列表中的最后一项 |
MoveNext | 移至列表中的下一项 |
MovePrevious | 移至列表中的上一项 |
Remove | 从列表中移除指定的项 |
RemoveAt | 移除此列表中指定索引处的项 |
RemoveCurrent | 从列表中移除当前项 |
设计过程
(1)打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,命名为ComplexControl。
(2)在当前项目中添加一个用户控件,将其命名为UserControl1。在用户控件中添加一个DataGridView 控件和一个BindingSource组件,并在DataGridView 控件的Columns属性中添加描述学生信息的字段。
(3)程序主要代码如下:
1 | public void BindData() |
秘笈心法
心法领悟010:使DataGridView单元格中的内容换行!
通过设置DataGridView控件的DefaultCellStyle属性的WrapMode属性可以实现单元格文本换行功能,代码如下:
dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;