DataGridView 控件及其相关类设计为一个灵活的可扩展系统,用于显示和编辑表格数据。 这些类都包含在 System.Windows.Forms 命名空间中,它们均以“DataGridView”前缀命名。
体系结构元素
主要 DataGridView 配套类派生自 DataGridViewElement。 以下对象模型说明了 DataGridViewElement 继承层次结构。
DataGridViewElement 类提供对父 DataGridView 控件的引用,并具有一个 State 属性,该属性包含一个值,该值表示来自 DataGridViewElementStates 枚举的值的组合。
以下部分更详细地介绍了 DataGridView 配套课程。
DataGridViewElementStates
DataGridViewElementStates 枚举包含以下值:
此枚举的值可以与按位逻辑运算符组合,因此 State 属性可以同时表达多个状态。 例如,DataGridViewElement 可以同时是 Frozen、Selected 和 Visible。
单元格和带区
DataGridView 控件包括两种基本类型的对象:单元格和带。 所有单元格都派生自 DataGridViewCell 基类。 DataGridViewColumn 和 DataGridViewRow 这两种带区都派生自 DataGridViewBand 基类。
DataGridView 控件与多个类互操作,但最常遇到的是 DataGridViewCell、DataGridViewColumn和 DataGridViewRow。
DataGridViewCell
细胞是 DataGridView的基本交互单位。 显示以单元格为中心,数据输入通常通过单元格执行。 可以使用 Cells 类的 DataGridViewRow 集合访问单元格,并且可以使用 SelectedCells 控件的 DataGridView 集合访问所选单元格。 以下对象模型说明了此用法,并显示了 DataGridViewCell 继承层次结构。
DataGridViewCell 类型是一个抽象基类,从中派生所有单元格类型。 DataGridViewCell 及其派生类型不是 Windows 窗体控件,而是一些宿主 Windows 窗体控件。 单元格支持的任何编辑功能通常由托管控件处理。
DataGridViewCell 对象不以与 Windows 窗体控件相同的方式控制自己的外观和绘制功能。 相反,DataGridView 负责其 DataGridViewCell 对象的外观。 通过与 DataGridView 控件的属性和事件交互,可以显著影响单元格的外观和行为。 如果你对超出 DataGridView 控件功能的自定义有特殊要求,你可实现自己的派生自 DataGridViewCell 或其子类之一的类。
以下列表显示了派生自 DataGridViewCell的类:
自定义单元格类型
DataGridViewColumn
DataGridView 控件的附加数据存储的架构在 DataGridView 控件的列中表示。 可以通过使用 DataGridView 集合来访问 Columns 控件的列。 可使用 SelectedColumns 集合访问选定的列。 以下对象模型说明了此用法,并显示了 DataGridViewColumn 继承层次结构。
某些关键单元格类型具有相应的列类型。 它们派生自 DataGridViewColumn 基类。
以下列表显示了派生自 DataGridViewColumn的类:
自定义列类型
DataGridView 编辑控件
支持高级编辑功能的单元格通常使用派生自 Windows 窗体控件的托管控件。 这些控件还实现 IDataGridViewEditingControl 接口。 以下对象模型说明了这些控件的用法。
以下编辑控件随 DataGridView 控件一起提供:
如需了解如何创建你自己的编辑控件的信息,请参阅如何:在 Windows 窗体 DataGridView 单元格中托管控件。
下表说明了单元格类型、列类型和编辑控件之间的关系。
DataGridViewRow
DataGridViewRow 类显示 DataGridView 控件附加到的数据存储中的记录数据字段。 可使用 DataGridView 集合访问 Rows 控件的行。 可使用 SelectedRows 集合访问选定的行。 以下对象模型说明了此用法,并显示了 DataGridViewRow 继承层次结构。
虽然通常没有必要,但你可以从 DataGridViewRow 类派生出自己的类型。 DataGridView 控件具有多个与行相关的事件和属性,用于自定义其 DataGridViewRow 对象的行为。
如果启用 DataGridView 控件的 AllowUserToAddRows 属性,用于添加新行的特殊行将显示为最后一行。 此行是 Rows 集合的一部分,但它具有可能需要你注意的特殊功能。 有关详细信息,请参阅在 Windows 窗体 DataGridView 控件中使用新记录行。