注
DataGridView コントロールは、DataGrid コントロールに代わって機能を追加します。ただし、DataGrid コントロールは、下位互換性と将来の使用の両方で保持されます (選択した場合)。 詳細については、「Windows フォーム DataGridView コントロールと DataGrid コントロールの違い」を参照してください。
DataGrid コントロールのさまざまな部分に異なる色を適用すると、情報の読み取りと解釈が容易になります。 色は行と列に適用できます。 行と列は、独自の判断で非表示にしたり、表示したりすることもできます。
DataGrid コントロールの書式設定には、3 つの基本的な側面があります。 プロパティを設定して、データを表示する既定のスタイルを設定できます。 そのベースから、実行時に特定のテーブルを表示する方法をカスタマイズできます。 最後に、データ グリッドに表示される列と、表示される色やその他の書式設定を変更できます。
データ グリッドの書式設定の最初の手順として、DataGrid 自体のプロパティを設定できます。 これらの色と書式の選択肢は、表示されるデータ テーブルと列に応じて変更を加えることができるベースになります。
DataGrid コントロールの既定のスタイルを確立するには
必要に応じて、次のプロパティを設定します。
プロパティ 説明 AlternatingBackColor BackColor プロパティは、グリッドの偶数行の色を定義します。 AlternatingBackColor プロパティを別の色に設定すると、他のすべての行がこの新しい色 (行 1、3、5 など) に設定されます。 BackColor グリッドの偶数行の背景色 (行 0、2、4、6 など)。 BackgroundColor BackColor プロパティと AlternatingBackColor プロパティはグリッド内の行の色を決定しますが、BackgroundColor プロパティは、グリッドが下にスクロールされたとき、またはグリッドに少数の行のみが含まれている場合にのみ表示される、行以外の領域の色を決定します。 BorderStyle グリッドの境界線スタイル。BorderStyle 列挙値の 1 つです。 CaptionBackColor グリッドのすぐ上に表示されるグリッドのウィンドウ キャプションの背景色。 CaptionFont グリッドの上部にあるキャプションのフォント。 CaptionForeColor グリッドのウィンドウ キャプションの背景色。 Font グリッドにテキストを表示するために使用するフォント。 ForeColor データ グリッドの行のデータによって表示されるフォントの色。 GridLineColor データ グリッドのグリッド線の色。 GridLineStyle グリッドのセルを区切る線のスタイル。DataGridLineStyle 列挙値の 1 つです。 HeaderBackColor 行ヘッダーと列ヘッダーの背景色。 HeaderFont 列ヘッダーに使用されるフォント。 HeaderForeColor グリッドの列ヘッダーの前景色。列ヘッダー テキストや、プラス/マイナス グリフも対象に含まれます (プラス/マイナス グリフは、複数の関連テーブルが表示される場合に、行を展開するためのものです)。 LinkColor 子テーブルへのリンク、リレーションシップ名など、データ グリッド内のすべてのリンクのテキストの色。 ParentRowsBackColor 子テーブルでは、これは親行の背景色になります。 ParentRowsForeColor 子テーブルでは、これは親行の前景色になります。 ParentRowsLabelStyle DataGridParentRowsLabelStyle 列挙型を使用して、テーブルと列名を親行に表示するかどうかを決定します。 PreferredColumnWidth グリッド内の列の既定の幅 (ピクセル単位)。 DataSource プロパティと DataMember プロパティをリセットする前に(個別に、または SetDataBinding メソッドを使用して)、このプロパティを設定すると、プロパティは無効になります。
プロパティを 0 未満の値に設定することはできません。PreferredRowHeight グリッド内の行の高さ (ピクセル単位)。 DataSource プロパティと DataMember プロパティをリセットする前に(個別に、または SetDataBinding メソッドを使用して)、このプロパティを設定すると、プロパティは無効になります。
プロパティを 0 未満の値に設定することはできません。RowHeaderWidth グリッドの行ヘッダーの幅。 SelectionBackColor 行またはセルを選択すると、背景色になります。 SelectionForeColor 行またはセルが選択されている場合、これは前景色になります。 注
コントロールの色をカスタマイズするときは、色の選択が不十分 (赤や緑など) が原因でコントロールにアクセスできないようにできることに注意してください。 この問題を回避するには、システム カラー パレットで使用できる色を使用します。
次の手順では、フォームにデータ テーブルにバインドされた DataGrid コントロールがあることを前提としています。 詳細については、「データ ソースへの Windows フォーム 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); }
こちらも参照ください
.NET Desktop feedback