方法 : Windows フォーム DataGrid コントロールの書式を設定する
更新 : 2007 年 11 月
メモ : |
---|
DataGridView コントロールは、DataGrid コントロールに代わると共に追加の機能を提供します。ただし、DataGrid コントロールは、下位互換性を保つ目的および将来使用する目的で保持されます。詳細については、「Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて」を参照してください。 |
DataGrid コントロールの各部分に異なる色を付けると、コントロールの情報が読みやすく、解釈しやすくなります。行および列の色を指定できます。また、行および列の表示/非表示を切り替えることもできます。
DataGrid コントロールの書式設定には、3 つの基本的な段階があります。プロパティを設定して、データを表示する既定のスタイルを設定できます。設定したスタイルに基づいて、実行時に特定のテーブルを表示する方法をカスタマイズできます。最後に、データ グリッドに表示する列、および表示する色やその他の書式を変更できます。
データ グリッドの書式設定の最初の手順として、DataGrid 自体のプロパティを設定できます。ここで選択した色および書式を基本として、表示するデータ テーブルおよび列に応じた変更を加えることができます。
DataGrid コントロールの既定のスタイルを設定するには
必要に応じて次のプロパティを設定します。
プロパティ
説明
BackColor プロパティは、グリッドの偶数番号の行の色を定義します。AlternatingBackColor プロパティを異なる色に設定すると、1 行おきにこの新しい色が設定されます (行 1、3、5 など)。
グリッドの偶数番号の行 (行 0、2、4、6 など) の背景色。
BackColor プロパティと AlternatingBackColor プロパティはグリッドの行の色を決定しますが、BackgroundColor プロパティは行以外の領域の色を決定します。この領域は、グリッドが一番下までスクロールされたときや、グリッドに数行しか含まれていない場合にだけ表示されます。
グリッドの境界線スタイル。BorderStyle 列挙値の 1 つです。
グリッドのウィンドウ キャプションの背景色。ウィンドウ キャプションは、グリッドのすぐ上に表示されます。
グリッドの上部のキャプションのフォント。
グリッドのウィンドウ キャプションの背景色。
グリッドのテキストの表示に使用されるフォント。
データ グリッドの行に表示されるデータのフォントの色。
データ グリッドのグリッド線の色。
グリッドのセル間の線のスタイル。DataGridLineStyle 列挙値の 1 つです。
行ヘッダーと列ヘッダーの背景色。
列ヘッダーに使用されるフォント。
グリッドの列ヘッダーの前景色。列ヘッダーのテキストおよびプラス/マイナス グリフも含まれます。プラス/マイナス グリフは、複数の関連するテーブルが表示されているときに行を展開するために使用します。
データ グリッド内のすべてのリンク テキストの色。子テーブル、リレーションシップ名などへのリンクが含まれます。
子テーブルに表示される親テーブルの行の背景色。
子テーブルに表示される親テーブルの行の前景色。
親テーブルの行にテーブル名と列名が表示されるかどうかを決定します。DataGridParentRowsLabelStyle 列挙型を使用します。
グリッドの列の既定の幅 (ピクセル単位)。このプロパティは、DataSource プロパティと DataMember プロパティをリセットする前に設定してください。リセットした後で設定しても無効です。これらのプロパティは、別個にリセットするか、SetDataBinding メソッドを使用してリセットします。
このプロパティは、0 未満の値には設定できません。
グリッドの行の高さ (ピクセル単位)。このプロパティは、DataSource プロパティと DataMember プロパティをリセットする前に設定してください。リセットした後で設定しても無効です。これらのプロパティは、別個にリセットするか、SetDataBinding メソッドを使用してリセットします。
このプロパティは、0 未満の値には設定できません。
グリッドの行ヘッダーの幅。
行またはセルが選択されたときの背景色。
行またはセルが選択されたときの前景色。
メモ : コントロールの色をカスタマイズするときには、不適切な色の選択 (赤と緑など) によってコントロールがアクセスできなくなる可能性があることに注意してください。この問題を避けるには、[システム カラー] パレットに含まれる色を使用します。
次の手順では、データ テーブルにバインドされた 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); }
参照
処理手順
方法 : Windows フォーム DataGrid コントロールの列を削除するまたは非表示にする