DataGridViewセルの境界線、グリッド線を変更する注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。 DataGridView全体の境界線スタイルを変更するDataGridViewの周りの境界線スタイルは、DataGridView.BorderStyleプロパティで変更できます。BorderStyleプロパティに設定できる値は、BorderStyle列挙体のFixedSingle(一重線の境界線、デフォルト)、Fixed3D(3D境界線)、None(境界線なし)のいずれかです。
[VB.NET]
'DataGridViewの境界線を3Dにする
DataGridView1.BorderStyle = BorderStyle.Fixed3D
[C#]
//DataGridViewの境界線を3Dにする
DataGridView1.BorderStyle = BorderStyle.Fixed3D;
セルの境界線スタイルを変更するセルの境界線スタイルは、DataGridView.CellBorderStyleプロパティで変更できます。CellBorderStyleプロパティには、DataGridViewCellBorderStyle列挙値(Customを除く)を指定できます。DataGridViewCellBorderStyle列挙値とその意味は、以下の通りです(MSDN「DataGridViewCellBorderStyle 列挙体」からの抜粋)。
また、ヘッダーセルの境界線スタイルは、DataGridView.ColumnHeadersBorderStyleとRowHeadersBorderStyleプロパティで変更できます。これらのプロパティには、DataGridViewHeaderBorderStyle列挙値(Customを除く)を指定できます。DataGridViewCellBorderStyle列挙値とその意味は、以下の通りです(MSDN「DataGridViewHeaderBorderStyle 列挙体」からの抜粋)。
[VB.NET] 'セルの境界線を水平方向の一重線にする DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal '列ヘッダーの境界線をくぼんだ3Dにする DataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken '行ヘッダーの境界線を一重線にする DataGridView1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single [C#] //セルの境界線を水平方向の一重線にする DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal; //列ヘッダーの境界線をくぼんだ3Dにする DataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken; //行ヘッダーの境界線を一重線にする DataGridView1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single; セルの境界線の色を変更するセルの境界線の色は、DataGridView.GridColorプロパティで変更できます。デフォルトは、ControlDarkDarkです。 ただしこの方法で色を変更できるのは、セルの境界線スタイルが一重線の場合のみです。つまり、CellBorderStyleプロパティでは、Single、SingleHorizontal、SingleVertical、ColumnHeadersBorderStyleおよびRowHeadersBorderStyleでは、Singleが設定されている時です。 補足:MSDN「DataGridView.GridColor プロパティ」によると、Application.EnableVisualStylesメソッドによりvisualスタイルが有効になっている時は、GridColorプロパティの色は使われないということです。しかし、私が試した限りでは、visualスタイルが有効となっている時でも、セルの境界線に関してはGridColorプロパティの色が使われました。ただし、ヘッダーセルの境界線に関しては、visualスタイルが有効になっていると、ヘッダー全体を囲む枠だけがGridColorプロパティの色になりました。visualスタイルを無効にすると、全てのヘッダーセルの境界線がGridColorプロパティの色になりました。つまり、DataGridView.EnableHeadersVisualStylesプロパティをFalseにしてヘッダーのvisualスタイルを無効にすれば、GridColorプロパティの色が使われます。 [VB.NET] 'セルの境界線を一重線にする DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.Single 'グリッド線の色を赤にする DataGridView1.GridColor = Color.Red [C#] //セルの境界線を一重線にする DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.Single; //グリッド線の色を赤にする DataGridView1.GridColor = Color.Red; セルの上下左右の境界線スタイルを個別に変更するCellBorderStyleプロパティでは、組み込まれたスタイルにしかセルの境界線スタイルを変更できません。しかし、DataGridView.AdvancedCellBorderStyleプロパティで取得できるDataGridViewAdvancedBorderStyleオブジェクトのプロパティを変更することにより、セルの上下左右の境界線スタイルを別々に設定することができます。 以下の例では、セルの上と左を二重線のくぼんだ境界線にし、下と右を一重線のくぼんだ境界線にしています。
[VB.NET]
'セルの上と左を二重線のくぼんだ境界線にし、
'下と右を一重線のくぼんだ境界線にする
DataGridView1.AdvancedCellBorderStyle.Top = _
DataGridViewAdvancedCellBorderStyle.InsetDouble
DataGridView1.AdvancedCellBorderStyle.Right = _
DataGridViewAdvancedCellBorderStyle.Inset
DataGridView1.AdvancedCellBorderStyle.Bottom = _
DataGridViewAdvancedCellBorderStyle.Inset
DataGridView1.AdvancedCellBorderStyle.Left = _
DataGridViewAdvancedCellBorderStyle.InsetDouble
[C#]
//セルの上と左を二重線のくぼんだ境界線にし、
//下と右を一重線のくぼんだ境界線にする
DataGridView1.AdvancedCellBorderStyle.Top =
DataGridViewAdvancedCellBorderStyle.InsetDouble;
DataGridView1.AdvancedCellBorderStyle.Right =
DataGridViewAdvancedCellBorderStyle.Inset;
DataGridView1.AdvancedCellBorderStyle.Bottom =
DataGridViewAdvancedCellBorderStyle.Inset;
DataGridView1.AdvancedCellBorderStyle.Left =
DataGridViewAdvancedCellBorderStyle.InsetDouble;
DataGridViewAdvancedBorderStyleオブジェクトのTop、Bottom、Left、Rightプロパティに設定できるDataGridViewAdvancedCellBorderStyle列挙値は、以下の通りです(MSDN「DataGridViewAdvancedCellBorderStyle 列挙体」からの抜粋です)。
ただし、NotSetを設定することはできません。また、RightプロパティにはInsetDoubleやOutsetDoubleを設定できません(RightToLeftプロパティがfalseの時)。さらに、BottomプロパティにInsetDoubleやOutsetDoubleを設定するとおかしくなりますので(セルの下が描画されなくなる)、Bottomプロパティにもこれらの値を設定しないほうがよいでしょう。 AdvancedCellBorderStyleプロパティと同じように、列ヘッダーセルの境界線スタイルはAdvancedColumnHeadersBorderStyleプロパティで、行ヘッダーセルの境界線スタイルはAdvancedRowHeadersBorderStyleプロパティで変更できます。 補足:左上隅のヘッダーセル(列ヘッダーと行ヘッダーが交差する部分)の境界線スタイルは、AdvancedColumnHeadersBorderStyleで変更されますが、AdvancedRowHeadersBorderStyleでは変更されないようです。左上隅のヘッダーセルだけの境界線スタイルを変更するには、DataGridView.AdjustedTopLeftHeaderBorderStyleプロパティをオーバーライドします。 AdjustCellBorderStyleメソッド等をオーバーライドする上記のようなお手軽な方法以外に、AdjustColumnHeaderBorderStyle、AdjustRowHeaderBorderStyle、AdjustCellBorderStyleメソッドや、AdjustedTopLeftHeaderBorderStyleプロパティをオーバーライドすることによってセルの上下左右の境界線スタイルを変更することもできます。この方法については、MSDNの「DataGridViewAdvancedBorderStyle クラス」をご覧ください。 |
|
Copyright 2002-2008 DOBON!. All rights reserved.
|