DataGridView 控制項架構 (Windows Form)
更新:2007 年 11 月
DataGridView 控制項及其相關的類別是設計成一個用來顯示和編輯表格式資料的彈性、可擴充系統。這些類別都包含在 System.Windows.Forms 命名空間中,而且全部都以 "DataGridView" 前置詞命名。
架構項目
主要的 DataGridView 附屬類別衍生自 DataGridViewElement。下列物件模型會說明 DataGridViewElement 繼承階層架構。
DataGridViewElement 物件模型
DataGridViewElement 類別會提供父代 DataGridView 控制項的參考,而且具有 State 屬性,此屬性包含一個值,用來代表來自 DataGridViewElementStates 列舉型別的值組合。
下列幾節會詳細描述 DataGridView 附屬類別。
DataGridViewElementStates
DataGridViewElementStates 列舉型別包含下列值:
這個列舉型別的值可以使用位元邏輯運算子 (Logical Operator) 來加以組合,因此 State 屬性可以一次表示超過一個狀態。例如,DataGridViewElement 可以同時是 Frozen、Selected 和 Visible。
儲存格和群組列
DataGridView 控制項由兩種主要類型的物件組成:儲存格和群組列。所有儲存格都衍生自 DataGridViewCell 基底類別。DataGridViewColumn 和 DataGridViewRow 這兩種群組列都是衍生自 DataGridViewBand 基底類別。
DataGridView 控制項會與幾個類別互通,但是最常遇到的是 DataGridViewCell、DataGridViewColumn 和 DataGridViewRow。
DataGridViewCell
儲存格是 DataGridView 的主要互動單位。顯示會集中在儲存格上,而資料輸入通常也是透過儲存格執行。您可以使用 DataGridViewRow 類別的 Cells 集合來存取儲存格,並且可以使用 DataGridView 控制項的 SelectedCells 集合來存取選取的儲存格。下列物件模型會說明此用法並顯示 DataGridViewCell 繼承階層架構。
DataGridViewCell 物件模型
DataGridViewCell 型別是一個抽象基底類別,所有儲存格型別都是從它衍生。DataGridViewCell 和其衍生型別都不是 Windows Form 控制項,而是一些裝載 Windows Form 控制項的控制項。儲存格所支援的任何編輯功能通常都是由裝載控制項處理。
DataGridViewCell 物件不會用和 Windows Form 控制項相同的方式來控制自己的外觀和繪製功能。相反地,DataGridView 會負責其 DataGridViewCell 物件的外觀。您可以透過與 DataGridView 控制項的屬性和事件互動,大幅影響儲存格的外觀和行為。當您有超過 DataGridView 控制項能力的特殊自訂需求時,可以實作衍生自 DataGridViewCell 或其中一個子類別的類別。
下列清單顯示衍生自 DataGridViewCell 的類別:
您的自訂儲存格型別
DataGridViewColumn
DataGridView 控制項的附加資料存放區的結構描述會在 DataGridView 控制項的資料行中表示。您可以使用 Columns 集合,存取 DataGridView 控制項的資料行。另外,可以使用 SelectedColumns 集合,存取選取的資料行。下列物件模型會說明此用法並顯示 DataGridViewColumn 繼承階層架構。
DataGridViewColumn 物件模型
某些主要的儲存格型別具有對應的資料行型別。這些型別都是衍生自 DataGridViewColumn 基底類別。
下列清單顯示衍生自 DataGridViewColumn 的類別:
您的自訂資料行型別
DataGridView 編輯控制項
支援進階編輯功能的儲存格通常會使用衍生自 Windows Form 控制項的裝載控制項。這些控制項也實作 IDataGridViewEditingControl 介面。下列物件模型會說明這些控制項的用法。
DataGridView 編輯控制項物件模型
下列編輯控制項是由 DataGridView 控制項所提供:
如需建立自己的編輯控制項的詳細資訊,請參閱 HOW TO:Windows Form DataGridView 儲存格中的主控制項。
下表說明儲存格型別、資料行型別和編輯控制項之間的關聯性 (Relationship)。
儲存格型別 |
裝載控制項 |
資料行型別 |
---|---|---|
N/A |
||
N/A |
||
N/A |
||
N/A |
||
DataGridViewRow
DataGridViewRow 類別會從附加 DataGridView 控制項的資料存放區,顯示資料錄的資料欄位。您可以使用 Rows 集合,存取 DataGridView 控制項的資料列。另外,可以使用 SelectedRows 集合,存取選取的資料列。下列物件模型會說明此用法並顯示 DataGridViewRow 繼承階層架構。
DataGridViewRow 物件模型
您可以從 DataGridViewRow 類別衍生自己的型別,雖然通常不必如此。DataGridView 控制項具有幾個資料列相關的事件和屬性,用來自訂它的 DataGridViewRow 物件的行為。
如果您啟用 DataGridView 控制項的 AllowUserToAddRows 屬性,會在最後一個資料列,顯示一個用來加入新資料列的特殊資料列。這個資料列是 Rows 集合的一部分,但是它具有可能需要注意的特殊功能。如需詳細資訊,請參閱 使用 Windows Form DataGridView 控制項中用於新增資料錄的資料列。
請參閱
概念
使用 Windows Form DataGridView 控制項中用於新增資料錄的資料列
參考
DataGridView 控制項概觀 (Windows Form)