共用方式為


如何:格式化 Windows Form DataGrid 控制項

注意

DataGridView 控制項會取代 DataGrid 控制項並加入其他功能,不過您也可以選擇保留 DataGrid 控制項,以提供回溯相容性及未來使用。 如需詳細資訊,請參閱 Windows Forms DataGridView 和 DataGrid 控制項之間的差異

將不同的色彩套用至控制項的各個部分 DataGrid ,有助於讓資訊更容易閱讀和解譯。 色彩可以套用至資料列和資料行。 您也可以視需要隱藏或顯示資料列和資料行。

格式化控制項有三個基本層面 DataGrid 。 您可以設定屬性來建立顯示資料的預設樣式。 然後,您可以從該基底自訂特定資料表在執行時間顯示的方式。 最後,您可以修改資料格中顯示的資料行,以及顯示的色彩和其他格式設定。

在設定資料方格格式的初始步驟中,您可以設定本身的屬性 DataGrid 。 這些色彩和格式選擇會形成基底,然後根據顯示的資料表和資料行進行變更。

建立 DataGrid 控制項的預設樣式

  1. 視需要設定下列屬性:

    屬性 說明
    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 方格中資料行的預設寬度 (單位為像素)。 在重設 DataSourceDataMember 屬性之前設定這個屬性 (分別或透過 SetDataBinding 方法),否則屬性將不會有任何作用。

    屬性不能設定為小於 0 的值。
    PreferredRowHeight 方格中資料列的資料列高度(以圖元為單位)。 在重設 DataSourceDataMember 屬性之前設定這個屬性 (分別或透過 SetDataBinding 方法),否則屬性將不會有任何作用。

    屬性不能設定為小於 0 的值。
    RowHeaderWidth 格線之列標題的寬度。
    SelectionBackColor 選取資料列或儲存格時,這是背景色彩。
    SelectionForeColor 選取資料列或儲存格時,這是前景色彩。

    注意

    請記住,自訂控制項的色彩時,可能會因為色彩選擇不佳而無法存取控制項(例如紅色和綠色)。 使用系統色彩 調色盤上 可用的色彩來避免此問題。

    下列程式假設您的表單具有 DataGrid 系結至資料表的控制項。 如需詳細資訊,請參閱 將 Windows Forms DataGrid 控制項系結至資料來源

以程式設計方式設定資料表的資料表和資料行樣式

  1. 建立新的表格樣式,並設定其屬性。

  2. 建立資料行樣式並設定其屬性。

  3. 將資料行樣式新增至表格樣式的資料行樣式集合。

  4. 將表格樣式新增至資料格的資料表樣式集合。

  5. 在下列範例中,建立新的 DataGridTableStyle 實例並設定其 MappingName 屬性。

  6. 建立 GridColumnStyle 的新實例 ,並設定其 MappingName (以及其他一些配置和顯示內容)。

  7. 針對您想要建立的每個資料行樣式重複步驟 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);  
       }  
    

另請參閱