如何:格式化 Windows Form DataGrid 控制項
注意
DataGridView 控制項會取代 DataGrid 控制項並加入其他功能,不過您也可以選擇保留 DataGrid 控制項,以提供回溯相容性及未來使用。 如需詳細資訊,請參閱 Windows Forms DataGridView 和 DataGrid 控制項之間的差異。
將不同的色彩套用至控制項的各個部分 DataGrid ,有助於讓資訊更容易閱讀和解譯。 色彩可以套用至資料列和資料行。 您也可以視需要隱藏或顯示資料列和資料行。
格式化控制項有三個基本層面 DataGrid 。 您可以設定屬性來建立顯示資料的預設樣式。 然後,您可以從該基底自訂特定資料表在執行時間顯示的方式。 最後,您可以修改資料格中顯示的資料行,以及顯示的色彩和其他格式設定。
在設定資料方格格式的初始步驟中,您可以設定本身的屬性 DataGrid 。 這些色彩和格式選擇會形成基底,然後根據顯示的資料表和資料行進行變更。
建立 DataGrid 控制項的預設樣式
視需要設定下列屬性:
屬性 說明 AlternatingBackColor 屬性 BackColor 會定義格線偶數資料列的色彩。 當您將 AlternatingBackColor 屬性設定為不同的色彩時,其他每個資料列都會設定為這個新的色彩(資料列 1、3、5 等等)。 BackColor 格線偶數列的背景色彩(資料列 0、2、4、6 等等)。 BackgroundColor BackColor雖然 和 AlternatingBackColor 屬性會決定方格中資料列的色彩, BackgroundColor 但 屬性會決定非Row 區域的色彩,只有在格線捲動到底部時才會顯示,或者如果方格中只包含幾個資料列,則為 。 BorderStyle 方格的框線樣式,其中 BorderStyle 一個列舉值。 CaptionBackColor 格線視窗的背景色彩標題緊接在方格上方。 CaptionFont 方格頂端標題字型。 CaptionForeColor 格線視窗的背景色彩標題。 Font 用來在方格中顯示文字的字型。 ForeColor 資料格資料列中資料所顯示之字型的色彩。 GridLineColor 資料格的格線色彩。 GridLineStyle 分隔方格儲存格的線條樣式,其中一個 DataGridLineStyle 列舉值。 HeaderBackColor 資料列和資料行標頭的背景色彩。 HeaderFont 用於資料行行首的字型。 HeaderForeColor 方格資料行標頭的前景色彩,包括資料行行首文字和加/減字元(顯示多個相關資料表時展開資料列)。 LinkColor 資料格中所有連結的文字色彩,包括子資料工作表的連結、關聯名稱等等。 ParentRowsBackColor 在子資料工作表中,這是父資料列的背景色彩。 ParentRowsForeColor 在子資料工作表中,這是父資料列的前景色彩。 ParentRowsLabelStyle 藉由 DataGridParentRowsLabelStyle 列舉,判斷資料表和資料行名稱是否顯示在父資料列中。 PreferredColumnWidth 方格中資料行的預設寬度 (單位為像素)。 在重設 DataSource 和 DataMember 屬性之前設定這個屬性 (分別或透過 SetDataBinding 方法),否則屬性將不會有任何作用。
屬性不能設定為小於 0 的值。PreferredRowHeight 方格中資料列的資料列高度(以圖元為單位)。 在重設 DataSource 和 DataMember 屬性之前設定這個屬性 (分別或透過 SetDataBinding 方法),否則屬性將不會有任何作用。
屬性不能設定為小於 0 的值。RowHeaderWidth 格線之列標題的寬度。 SelectionBackColor 選取資料列或儲存格時,這是背景色彩。 SelectionForeColor 選取資料列或儲存格時,這是前景色彩。 注意
請記住,自訂控制項的色彩時,可能會因為色彩選擇不佳而無法存取控制項(例如紅色和綠色)。 使用系統色彩 調色盤上 可用的色彩來避免此問題。
下列程式假設您的表單具有 DataGrid 系結至資料表的控制項。 如需詳細資訊,請參閱 將 Windows Forms DataGrid 控制項系結至資料來源 。
以程式設計方式設定資料表的資料表和資料行樣式
建立新的表格樣式,並設定其屬性。
建立資料行樣式並設定其屬性。
將資料行樣式新增至表格樣式的資料行樣式集合。
將表格樣式新增至資料格的資料表樣式集合。
在下列範例中,建立新的 DataGridTableStyle 實例並設定其 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); }
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應