Windows Form DataGridView 控制項中的資料行類型

控制項 DataGridView 會使用數個數據行類型來顯示其資訊,並讓使用者修改或新增資訊。

當您系結 DataGridView 控制項並將 屬性設定 AutoGenerateColumnstrue 時,會自動使用適用于系結資料來源中之資料類型的預設資料行類型來產生資料行。

您也可以自行建立任何資料行類別的實例,並將其新增至 屬性所傳回的 Columns 集合。 您可以建立這些實例以作為未系結的資料行使用,也可以手動系結它們。 例如,當您想要將某個類型的自動產生資料行取代為另一個類型的資料行時,手動系結的資料行很有用。

下表描述可用於 DataGridView 控制項的各種資料行類別。

類別 描述
DataGridViewTextBoxColumn 與文字型值搭配使用。 系結至數位和字串時自動產生。
DataGridViewCheckBoxColumn 搭配 和 BooleanCheckState 值使用。 系結至這些類型的值時自動產生。
DataGridViewImageColumn 用來顯示影像。 系結至位元組陣列、 Image 物件或 Icon 物件時自動產生。
DataGridViewButtonColumn 用來在儲存格中顯示按鈕。 系結時不會自動產生。 通常用來作為未系結的資料行。
DataGridViewComboBoxColumn 用來在儲存格中顯示下拉式清單。 系結時不會自動產生。 通常手動系結資料。
DataGridViewLinkColumn 用來在儲存格中顯示連結。 系結時不會自動產生。 通常手動系結資料。
您的自訂資料行類型 您可以藉由繼承 DataGridViewColumn 類別或其任何衍生類別來提供自訂外觀、行為或主控控制項,以建立自己的資料行類別。 如需詳細資訊,請參閱 如何:擴充其行為和外觀,在 Windows Forms DataGridView 控制項中自訂儲存格和資料行

下列各節會更詳細地說明這些資料行類型。

DataGridViewTextBoxColumn

DataGridViewTextBoxColumn是一般用途的資料行類型,可用於以文字為基礎的值,例如數位和字串。 在編輯模式中, TextBox 控制項會顯示在作用儲存格中,讓使用者修改儲存格值。

儲存格值會自動轉換成字串以供顯示。 使用者輸入或修改的值會自動剖析,以建立適當資料類型的儲存格值。 您可以藉由處理 CellFormatting 控制項的 DataGridViewCellParsing 事件來自訂這些轉換。

資料行的儲存格值資料類型是在資料行的 屬性中 ValueType 指定。

DataGridViewCheckBoxColumn

DataGridViewCheckBoxColumn與 和 CheckState 值搭配 Boolean 使用。 Boolean 值會顯示為兩個狀態或三個狀態核取方塊,視 屬性的值 ThreeState 而定。 當資料行系結至 CheckState 值時, ThreeState 屬性值預設為 true

一般而言,核取方塊儲存格值適用于儲存體,就像任何其他資料一樣,或是執行大量作業。 如果您想要在使用者按一下核取方塊儲存格時立即回應,您可以處理 CellClick 事件,但此事件會在更新儲存格值之前發生。 如果您需要按一下時的新值,其中一個選項是根據目前的值來計算預期的值。 另一種方法是立即認可變更,並處理 CellValueChanged 事件以回應該變更。 若要在按一下儲存格時認可變更,您必須處理 CurrentCellDirtyStateChanged 事件。 在處理常式中,如果目前儲存格是核取方塊儲存格,請呼叫 CommitEdit 方法並傳入 Commit 值。

DataGridViewImageColumn

DataGridViewImageColumn用來顯示影像。 影像資料行可以從資料來源自動填入、手動填入未系結資料行,或在事件的處理常式 CellFormatting 中動態填入。

資料來源中影像資料行的自動母體擴展適用于各種影像格式的位元組陣列,包括 類別所支援 Image 的所有格式,以及 Microsoft® Access 和 Northwind 範例資料庫所使用的 OLE Picture 格式。

當您想要提供 的功能 DataGridViewButtonColumn 時,手動填入影像資料行會很有用,但具有自訂的外觀。 您可以處理 DataGridView.CellClick 事件,以回應影像資料格內的點選。

當您想要為非影像格式的匯出值或值提供影像時,在事件的處理常式 CellFormatting 中填入影像資料行的資料格很有用。 例如,您可能有一個 「Risk」 資料行,其中包含字串值,例如 "high""middle" ,而且 "low" 您想要顯示為圖示。 或者,您可能有一個「影像」資料行,其中包含必須載入的影像位置,而不是影像的二進位內容。

DataGridViewButtonColumn

DataGridViewButtonColumn透過 ,您可以顯示包含按鈕的儲存格資料行。 當您想要為使用者提供簡單的方式來在特定記錄上執行動作時,這非常有用,例如將訂單或顯示子記錄放在個別視窗中。

當資料系結 DataGridView 控制項時,不會自動產生按鈕資料行。 若要使用按鈕資料行,您必須手動建立它們,並將其新增至 屬性所傳回的 DataGridView.Columns 集合。

您可以處理 DataGridView.CellClick 事件,以回應按鈕儲存格中的使用者點選。

DataGridViewComboBoxColumn

DataGridViewComboBoxColumn透過 ,您可以顯示包含下拉式清單方塊的儲存格資料行。 這適用于只能包含特定值的欄位資料輸入,例如 Northwind 範例資料庫中 Products 資料表的 Category 資料行。

您可以填入用於所有儲存格的下拉式清單,就像填入 ComboBox 下拉式清單一樣,手動透過 屬性傳 Items 回的集合,或透過 DataSourceDisplayMemberValueMember 屬性將它系結至資料來源。 如需詳細資訊,請參閱 ComboBox 控制項

您可以藉由設定 DataPropertyNameSystem.Windows.Forms.DataGridViewComboBoxColumn 屬性,將實際儲存格值系結至 控制項所使用的 DataGridView 資料來源。

資料系 DataGridView 結控制項時,不會自動產生下拉式方塊資料行。 若要使用下拉式方塊資料行,您必須手動建立資料行,並將其新增至 屬性所傳回的 Columns 集合。

DataGridViewLinkColumn

DataGridViewLinkColumn透過 ,您可以顯示包含超連結的儲存格資料行。 這適用于資料來源中的 URL 值,或做為按鈕資料行的替代方式,以使用子記錄開啟視窗等特殊行為。

資料系結 DataGridView 控制項時,不會自動產生連結資料行。 若要使用連結資料行,您必須手動建立它們,並將其新增至 屬性所傳回的 Columns 集合。

您可以處理 CellContentClick 事件來回應使用者按一下連結。 此事件與 CellClickCellMouseClick 事件不同,當使用者按一下儲存格中的任何位置時,就會發生此事件。

類別 DataGridViewLinkColumn 提供數個屬性來修改連結在按一下之前、期間和之後的外觀。

另請參閱