背景画像を使用して、キャプションバー、列ヘッダ、列フッタなどの静的なグリッド要素をカスタマイズできます。たとえば、次のコードは、グリッドの 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; |