HOW TO:格式化 Windows Form DataGrid 控制項
注意事項 |
---|
DataGridView 控制項會取代 DataGrid 控制項並加入其他功能,不過您也可以選擇保留 DataGrid 控制項,以提供回溯相容性及未來使用。 如需詳細資訊,請參閱 Windows Form DataGridView 和 DataGrid 控制項之間的差異。 |
將不同色彩套用到 DataGrid 控制項的各部分,有助於使其中的資料更容易讀取和解譯。 色彩可以套用到資料行和資料列上。 您可自行斟酌要隱藏或顯示資料行和資料列。
格式化 DataGrid 控制項有三個基本方向。 可設定屬性以建立資料顯示的預設樣式。 這樣,就可以自訂在執行階段時特定表格的顯示方式。 最後,您可修改在資料格中要顯示哪些資料行,以及色彩和要顯示的其他格式設定。
做為格式化資料格的第一個步驟,您可以設定 DataGrid 本身的屬性。 這些色彩和格式選擇形成一個基礎,您可接著從中根據顯示的資料表和資料行進行變更。
若要為 DataGrid 控制項建立預設樣式
將以下屬性設為適當的屬性:
屬性
說明
BackColor 屬性會定義方格的偶數資料列色彩。 當您將 AlternatingBackColor 屬性設為不同的色彩時,每隔一列會設為這個新色彩 (第 1、3、5 列,以此類推)。
方格的偶數列背景色彩 (第 0、2、4、6 列,以此類推)。
BackColor 和 AlternatingBackColor 屬性決定方格中資料列的色彩,而 BackgroundColor 屬性決定非資料列區域的色彩,只有在方格捲動到底部或是方格中只含有少量資料列時才看得到。
方格的框線樣式,是 BorderStyle 列舉型別的其中一個。
方格視窗標題的背景色彩,緊接著方格的上方出現。
方格上方標題的字型。
方格視窗標題的背景色彩。
用於顯示方格中文字的字型。
在資料格的資料列中由資料顯示的字型色彩。
資料格中格線的色彩。
分隔方格儲存格的線條之樣式,是 DataGridLineStyle 列舉值其中之一。
資料行和資料列行首的背景色彩。
用於資料行行首的字型。
方格資料行行首的前景色彩,包括資料行頁首文字和加號/減號圖像 (當顯示多個相關資料表時,用以展開資料列)。
資料格中所有連結的文字色彩,包括子資料表的連結、關聯名稱等。
在子資料表中,這是父資料列的背景色彩。
在子資料表中,這是父資料列的前景色彩。
決定是否使用 DataGridParentRowsLabelStyle 列舉型別,將資料表和資料行的名稱顯示在父資料列中。
方格中資料行的預設寬度 (單位為像素)。 在重設 DataSource 和 DataMember 屬性 (個別地設定或透過 SetDataBinding 方法) 之前,請先設定這個屬性,否則屬性會沒有作用。
該屬性無法設為小於零的值。
方格中資料列的高度 (單位為像素)。 在重設 DataSource 和 DataMember 屬性 (個別地設定或透過 SetDataBinding 方法) 之前,請先設定這個屬性,否則屬性會沒有作用。
該屬性無法設為小於零的值。
方格中資料列標頭的寬度。
當選取了資料列或儲存格時,這是背景色彩。
當選取了資料列或儲存格時,這是前景色彩。
注意事項 請記住,在自訂控制項的色彩時,有可能因為色彩選擇不當 (例如紅色和綠色),使控制項無法存取。 使用 [系統色彩] 調色盤中的可用色彩,避免這樣的問題。
以下程序假設您的表單具有繫結至資料表的 DataGrid 控制項。 如需詳細資訊,請參閱將 Windows Form DataGrid 控制項繫結至資料來源。
若要以程式設計的方式設定資料表和資料表的資料行樣式
建立新資料表樣式並設定其屬性。
建立資料行樣式並設定其屬性。
將資料行樣式加入至資料表樣式的資料行樣式集合。
將資料表樣式加入至資料格的資料表樣式集合。
在下列的範例中,建立新 DataGridTableStyle 的執行個體 (Instance) 和其 MappingName 屬性。
建立 GridColumnStyle 的新執行個體,並設定其 MappingName (和某些其他配置和設定屬性)。
為要建立的每個資料行樣式重複步驟 2 至 6。
以下範例說明 DataGridTextBoxColumn 如何建立,因為名稱將會顯示在資料行中。 此外,將資料行樣式加入至資料表樣式的 GridColumnStylesCollection,並將資料表樣式加入至資料格的 GridTableStylesCollection。
Private Sub CreateAuthorFirstNameColumn() ' Add a GridTableStyle and set the MappingName ' to the name of the DataTable. Dim TSAuthors As New DataGridTableStyle() TSAuthors.MappingName = "Authors" ' Add a GridColumnStyle and set the MappingName ' to the name of a DataColumn in the DataTable. ' Set the HeaderText and Width properties. Dim TCFirstName As New DataGridTextBoxColumn() TCFirstName.MappingName = "AV_FName" TCFirstName.HeaderText = "First Name" TCFirstName.Width = 75 TSAuthors.GridColumnStyles.Add(TCFirstName) ' Add the DataGridTableStyle instance to ' the GridTableStylesCollection. myDataGrid.TableStyles.Add(TSAuthors) End Sub
private void addCustomDataTableStyle() { // Add a GridTableStyle and set the MappingName // to the name of the DataTable. DataGridTableStyle TSAuthors = new DataGridTableStyle(); TSAuthors.MappingName = "Authors"; // Add a GridColumnStyle and set the MappingName // to the name of a DataColumn in the DataTable. // Set the HeaderText and Width properties. DataGridColumnStyle TCFirstName = new DataGridTextBoxColumn(); TCFirstName.MappingName = " AV_FName"; TCFirstName.HeaderText = "First Name"; TCFirstName.Width = 75; TSAuthors.GridColumnStyles.Add(TCFirstName); // Add the DataGridTableStyle instance to // the GridTableStylesCollection. dataGrid1.TableStyles.Add(TSAuthors); }
private: void addCustomDataTableStyle() { // Add a GridTableStyle and set the MappingName // to the name of the DataTable. DataGridTableStyle^ TSAuthors = new DataGridTableStyle(); TSAuthors->MappingName = "Authors"; // Add a GridColumnStyle and set the MappingName // to the name of a DataColumn in the DataTable. // Set the HeaderText and Width properties. DataGridColumnStyle^ TCFirstName = gcnew DataGridTextBoxColumn(); TCFirstName->MappingName = "AV_FName"; TCFirstName->HeaderText = "First Name"; TCFirstName->Width = 75; TSAuthors->GridColumnStyles->Add(TCFirstName); // Add the DataGridTableStyle instance to // the GridTableStylesCollection. dataGrid1->TableStyles->Add(TSAuthors); }
請參閱
工作
HOW TO:刪除或隱藏 Windows Form DataGrid 控制項中的資料行