Copyright © GrapeCity inc. All rights reserved.
True DBGrid for WinForms
背景画像を表示する
スタイルの使用方法 > 画像をグリッドの要素に適用する > 背景画像を表示する

背景画像を使用して、キャプションバー、列ヘッダ、列フッタなどの静的なグリッド要素をカスタマイズできます。たとえば、次のコードは、グリッドの CaptionStyleプロパティから返されるStyleオブジェクトの BackgroundImage メンバに、グラデーションカラーで塗りつぶされたビットマップを適用しています。

Visual Basic コードの書き方

Visual Basic
コードのコピー
With Me.C1TrueDBGrid1.CaptionStyle
    .BackgroundImage = System.Drawing.Image.FromFile("c:\bubbles.bmp")
    .BackgroundPictureDrawMode = C1.Win.C1TrueDBGrid.BackgroundPictureDrawModeEnum.Tile
    .ForeColor = System.Drawing.Color.White
    .Font = New Font(.Font, FontStyle.Bold)
End With

C# コードの書き方

C#
コードのコピー
this.c1TrueDBGrid1.CaptionStyle.BackgroundImage = System.Drawing.Image.FromFile(@"c:\bubbles.bmp");
this.c1TrueDBGrid.BackgroundPictureDrawMode = C1.Win.C1TrueDBGrid.BackgroundPictureDrawModeEnum.Tile;
this.c1TrueDBGrid1.CaptionStyle.ForeColor = System.Drawing.Color.White;
this.c1TrueDBGrid1.CaptionStyle.Font = new Font(this.c1TrueDBGrid1.CaptionStyle.Font, FontStyle.Bold);

また、このコードは、キャプションのテキストの色を変え、テキストを太字にして、次のように表示します。


;設計時に同じ効果を得るには、GridStyleCollection エディタで組み込みの Caption スタイルを編集するか、Visual Studio のプロパティウィンドウで CaptionStyle プロパティを編集します。

デフォルトでは、背景画像は、関連付けられたグリッド要素内の中央に配置されます。背景のビットマップの高さによっては、領域全体が塗りつぶされるように BackgroundPictureDrawMode プロパティの値を調節する必要があります。このプロパティでは、次の図に示すように、画像を中央に配置する、タイル表示する、領域全体に合わせて引き伸ばして表示する、のいずれかを指定できます。

データセル内で背景画像を使用して、おもしろい視覚効果を得ることができます。たとえば、次のパターンは、隣接する行で繰り返し表示するように作成されています。


レコードセレクタ列、データ行間の分割線、および列ヘッダの分割線を非表示にしたうえ、上のパターンを使用して、次のような表示を作成できます。


ここでは、次のコード例に示すように、空の非連結列を左側に挿入してバインダーのリングを表示しています。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' グリッドの外観をフラットにし、レコード セレクタ、行分割線、スクロール バーを削除します
With Me.C1TrueDBGrid1
    .InactiveStyle.ForeColor = System.Drawing.Color.White
    .RecordSelectors = False
    .RowDivider.Style = LineStyleEnum.None
    .RowHeight = 16
    .HScrollBar.Style = ScrollBarStyleEnum.None
           .VScrolBar.Style = ScrollBarStyleEnum.None
    .MarqueeStyle = MarqueeEnum.NoMarquee
End With
 
' デフォルト スプリット内のデータ セルで使用される背景パターンを設定します(標準のスタイルには影響しない)
With Me.C1TrueDBGrid1.Splits(0).Style
    .BackgroundImage = System.Drawing.Image.FromFile("paper.bmp")
    .BackgroundPictureDrawMode = BackgroundPictureDrawModeEnum.Tile
End With
 
' バインダ リングを保持する空のアンバウンド列を左に作成します。分割線を削除し、Style オブジェクトのBackroundBitmap プロパティを設定します
Dim col as New C1TrueDBGrid.C1DataColumn()
Me.C1TrueDBGrid.Columns.InsertAt(0, col) Dim C As C1TrueDBGrid.C1DisplayColumn
C = Me.C1TrueDBGrid1.Splits(0).DisplayColumns(col)
With C
    .Width = 48
    .Visible = True
    .Style.BackgroundImage = System.Drawing.Image.FromFile("rings.bmp")
    .HeaderDivider = False
    .ColumnDivider.Style = LineStyleEnum.None
End With
 
' アンバウンド列を表示領域にスクロールします
Me.C1TrueDBGrid1.Col = 0
 
'Title 列をサイズ変更し、ヘッダー分割線を削除します
Set C = Me.C1TrueDBGrid1.Splits(0).DisplayColumns("Title")
With C
    .Width = 380
    .HeaderDivider = False
End With
 
' バインダ リング ビットマップの小さな角を列ヘッダの背景に使用し、フォントとテキストの色をそれぞれ調整します
Dim myfont As Font
With Me.C1TrueDBGrid1.HeadingStyle
    .BackgroundImage = System.Drawing.Image.FromFile("corner.bmp")
    .BackgroundPictureDrawMode = BackgroundPictureDrawModeEnum.Tile
    myfont = New Font(.Font, 10, FontStyle.Bold)
    .Font = myfont    
    .ForeColor = System.Drawing.Color.White
End With

C# コードの書き方

C#
コードのコピー
// グリッドの外観をフラットにし、レコード セレクタ、行分割線、スクロール バーを削除します
this.c1TrueDBGrid1.InactiveStyle.ForeColor = System.Drawing.Color.White;
this.c1TrueDBGrid1.RecordSelectors = false;
this.c1TrueDBGrid1.RowDivider.Style = LineStyleEnum.None;
this.c1TrueDBGrid1.RowHeight = 16;
this.c1TrueDBGrid1.HScrollBar.Style = ScrollBarStyleEnum.None;
this.c1TrueDBGrid1.VScrolBar.Style = ScrollBarStyleEnum.None;
this.c1TrueDBGrid1.MarqueeStyle = MarqueeEnum.NoMarquee;
 
// デフォルト スプリット内のデータ セルで使用される背景パターンを設定します(標準のスタイルには影響しない)
this.c1TrueDBGrid1.Splits[0].Style.BackgroundImage = System.Drawing.Image.FromFile("paper.bmp");
this.c1TrueDBGrid1.Splits[0].Style.BackgroundPictureDrawMode = BackgroundPictureDrawModeEnum.Tile;
 
// バインダ リングを保持する空のアンバウンド列を左に作成します。分割線を削除し、Style オブジェクトのBackroundBitmap プロパティを設定します
C1TrueDBGrid.C1DataColumn col = new C1TrueDBGrid.C1DataColumn();
this.C1TrueDBGrid.Columns.InsertAt(0, col);
C1TrueDBGrid.C1DisplayColumn C = this.c1TrueDBGrid1.Splits[0].DisplayColumns[col];
       C.Width = 48;
C.Visible = true;
C.Style.BackgroundImage = System.Drawing.Image.FromFile["rings.bmp"];
C.HeaderDivider = false;
       C.ColumnDivider.Style = LineStyleEnum.None;
 
// アンバウンド列を表示領域にスクロールします
this.c1TrueDBGrid1.Col = 0;
 
// Title 列をサイズ変更し、ヘッダー分割線を削除します
C = this.c1TrueDBGrid1.Splits[0].DisplayColumns["Title"];
C.Width = 380;
C.HeaderDivider = false;
 
// バインダ リング ビットマップの小さな角を列ヘッダの背景に使用し、フォントとテキストの色をそれぞれ調整します
Font myfont;
this.c1TrueDBGrid1.HeadingStyle.BackgroundImage = System.Drawing.Image.FromFile("corner.bmp");
this.c1TrueDBGrid1.HeadingStyle.BackgroundPictureDrawMode = BackgroundPictureDrawModeEnum.Tile;
myfont = new Font(.Font, 10, FontStyle.Bold);
this.c1TrueDBGrid1.HeadingStyle.Font = myfont;
this.c1TrueDBGrid1.HeadingStyle.ForeColor = System.Drawing.Color.White;