共用方式為


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

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

當您繫結 DataGridView 控制項並將 AutoGenerateColumns 屬性設定為 true 時,欄位就會自動產生,並且使用適用於繫結資料來源中所含資料類型的預設資料行類型。

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

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

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

這些資料行類型詳述於以下各節。

DataGridViewTextBoxColumn

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

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

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

DataGridViewCheckBoxColumn

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

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

DataGridViewImageColumn

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

從資料來源自動填入影像資料行適用於各種影像格式的位元組陣列,包括 Image 類別支援的所有格式,以及 Microsoft® Access 和 Northwind 範例資料庫所使用的 OLE 圖片格式。

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

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

DataGridViewButtonColumn

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

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

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

DataGridViewComboBoxColumn

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

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

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

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

DataGridViewLinkColumn

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

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

您可以處理 CellContentClick 事件,以回應使用者在連結上的點選。 此事件與 CellClickCellMouseClick 事件不同,這些事件會在使用者點按儲存格中的任何位置時發生。

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

另請參閱