方法: Windows フォーム DataGrid コントロールの書式を設定する

注意

DataGridView コントロールは、DataGrid コントロールに代わると共に追加の機能を提供します。ただし、DataGrid コントロールは、下位互換性を保つ目的および将来使用する目的で保持されます。 詳細については、「Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて」を参照してください。

DataGrid コントロールのさまざまな部分に異なる色を適用すると、情報が読みやすくなり、解釈しやすくなります。 色は、行と列に適用できます。 行と列は、表示と非表示を自由に切り替えることもできます。

DataGrid コントロールの書式設定には、3 つの基本的な側面があります。 開発者はまず、プロパティを設定して、データを表示する際の既定のスタイルを設定できます。 それをベースにして、特定のテーブルを実行時にどのように表示するかをカスタマイズできます。 最後に、データ グリッドに表示される列と、表示される色やその他の書式を変更できます。

データ グリッドを書式設定する際の最初の手順として、DataGrid 自体のプロパティを設定できます。 このときに選択した色と形式が、表示されるデータ テーブルや列に応じて変更を加えるためのベースとなります。

DataGrid コントロールの既定のスタイルを設定するには

  1. 必要に応じて、次のプロパティを設定します。

    プロパティ 説明
    AlternatingBackColor BackColor プロパティは、グリッドの偶数行の色を定義します。 AlternatingBackColor プロパティを別の色に設定した場合、他のすべての行 (行 1、3、5 など) にこの新しい色が設定されます。
    BackColor グリッドの偶数行 (行 0、2、4、6 など) の背景色です。
    BackgroundColor BackColor プロパティと AlternatingBackColor プロパティでは、グリッド内の行の色を決定しますが、BackgroundColor プロパティでは、グリッドを一番下にスクロールしたときや、グリッドに含まれる行が少ないときにのみ表示される、行以外の領域の色を決定します。
    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 フォーム 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);  
       }  
    

関連項目