Windows Form DataGridView 控制項中的資料行類型
DataGridView 控制項會使用數個資料行類型來顯示其資訊,並讓使用者修改或新增資訊。
當您繫結 DataGridView 控制項並將 AutoGenerateColumns 屬性設定為 true
時,欄位就會自動產生,並且使用適用於繫結資料來源中所含資料類型的預設資料行類型。
您也可以自行建立任何資料行類別的執行個體,並將其新增至 Columns 屬性所傳回的集合。 您可以建立這些執行個體以作為未繫結的資料行使用,也可以手動將其繫結。 例如,當您想要將自動產生的某類型資料行取代為另一個類型的資料行時,手動繫結資料行就很實用。
下表描述可用於 DataGridView 控制項的各種資料行類別。
類別 | 描述 |
---|---|
DataGridViewTextBoxColumn | 與文字類的值搭配使用。 繫結至數字和字串時自動產生。 |
DataGridViewCheckBoxColumn | 與 Boolean 和 CheckState 值搭配使用。 繫結至這些類型的值時自動產生。 |
DataGridViewImageColumn | 用來顯示影像。 繫結至位元組陣列、Image 物件或 Icon 物件時自動產生。 |
DataGridViewButtonColumn | 用來在儲存格中顯示按鈕。 繫結時不會自動產生。 通常用來作為未繫結的資料行。 |
DataGridViewComboBoxColumn | 用來在儲存格中顯示下拉式清單。 繫結時不會自動產生。 通常是手動繫結資料。 |
DataGridViewLinkColumn | 用來在儲存格中顯示連結。 繫結時不會自動產生。 通常是手動繫結資料。 |
您的自訂資料行類型 | 您可以藉由繼承 DataGridViewColumn 類別或其任何衍生類別來提供自訂外觀、行為或託管控制項,以建立自己的資料行類別。 如需詳細資訊,請參閱操作說明:擴充儲存格和資料行的行為和外觀以自訂 Windows Forms DataGridView 控制項中的儲存格和資料行 |
這些資料行類型詳述於以下各節。
DataGridViewTextBoxColumn
DataGridViewTextBoxColumn 是一般用途的資料行類型,可用於文字類的值,例如數字和字串。 在編輯模式中,TextBox 控制項會顯示在作用儲存格中,讓使用者修改儲存格的值。
儲存格的值會自動轉換成字串來顯示。 使用者輸入或修改的值會自動進行剖析,以建立適當資料類型的儲存格值。 您可以藉由處理 DataGridView 控制項的 CellFormatting 和 CellParsing 事件來自訂這些轉換。
資料行的儲存格值資料類型會在資料行的 ValueType 屬性中指定。
DataGridViewCheckBoxColumn
DataGridViewCheckBoxColumn 會與 Boolean 和 CheckState 值搭配使用。 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 屬性傳回的集合手動填入,或透過 DataSource、DisplayMember 和 ValueMember 屬性將其繫結至資料來源。 如需詳細資訊,請參閱 ComboBox 控制件。
您可以藉由設定 System.Windows.Forms.DataGridViewComboBoxColumn 的 DataPropertyName 屬性,將實際儲存格值繫結至 DataGridView 控制項所使用的資料來源。
與 DataGridView 控制項進行資料繫結時,不會自動產生下拉式方塊資料行。 若要使用下拉式方塊資料行,您必須手動建立,並將其新增至 Columns 屬性所傳回的集合。
DataGridViewLinkColumn
透過 DataGridViewLinkColumn,您可以顯示包含超連結的儲存格資料行。 這適用於資料來源中的 URL 值,或做為特殊行為按鈕資料行的替代方式,例如開啟包含子記錄的視窗。
與 DataGridView 控制項進行資料繫結時,不會自動產生連結資料行。 若要使用連結資料行,您必須手動建立,並將其新增至 Columns 屬性所傳回的集合。
您可以處理 CellContentClick 事件,以回應使用者在連結上的點選。 此事件與 CellClick 和 CellMouseClick 事件不同,這些事件會在使用者點按儲存格中的任何位置時發生。
DataGridViewLinkColumn 類別提供數個屬性,用於修改連結在按一下之前、期間和之後的外觀。
另請參閱
- DataGridView
- DataGridViewColumn
- DataGridViewButtonColumn
- DataGridViewCheckBoxColumn
- DataGridViewComboBoxColumn
- DataGridViewImageColumn
- DataGridViewTextBoxColumn
- DataGridViewLinkColumn
- DataGridView 控制項
- 操作說明:顯示 Windows Form DataGridView 控制項的儲存格影像
- 操作說明:使用 Windows Forms DataGridView 控制項中的影像資料行
- 自訂 Windows Forms DataGridView 控制項