PowerTools MultiRow for Windows Forms 8.0J
ヘッダのハイライトスタイル

MultiRowでは、セルを選択したときにそのセルが属する行と列のヘッダをハイライト表示できます。

  • ハイライト表示が有効なセルは、列ヘッダ型セルと行ヘッダ型セルのみです。

 

ハイライトモードの設定

ヘッダセルのハイライトを有効にするには、GcMultiRow.HeaderCellHighlightModeプロパティを使用します。ハイライト表示の対象となるヘッダセルはHeaderCellHighlightModeプロパティの設定によって次のようになります。

ContainedCells
選択したセルの範囲内に全体が含まれているヘッダセルがハイライト表示します。

IntersectedCells
選択したセルの範囲内に全体または一部が含まれているヘッダセルがハイライト表示します。

None
すべてのヘッダセルがハイライト表示しません。

次のコードでは、選択したセルの範囲内に全体が含まれているヘッダセルがハイライト表示します。
GcMultiRow1.HeaderCellHighlightMode = GrapeCity.Win.MultiRow.HighlightMode.ContainedCells
                        
gcMultiRow1.HeaderCellHighlightMode = GrapeCity.Win.MultiRow.HighlightMode.ContainedCells;
ハイライトスタイルの設定

ヘッダのハイライト表示では、セルの背景色と文字色を変更できます。この2つの色は、CellStyle.SelectionBackColorプロパティとCellStyle.SelectionForeColorプロパティを使用して設定します。

  • ヘッダセルのハイライト表示で背景色の設定を有効にするにはFlatStyleプロパティにFlatまたはPopupを設定する必要があります。

 

次のコードでは、GcMultiRowコントロールに設定されているテンプレートのColumHeaderCellのFlayStyleプロパティにFlatを設定して、ヘッダのハイライト表示を有効にします。

' GcMultiRowコントロールに設定されているテンプレートを取得します。
Dim Template1 As Template = GcMultiRow1.Template

For _count As Integer = 0 To Template1.ColumnHeaders(0).Cells.Count - 1
    If TypeOf (Template1.ColumnHeaders(0).Cells(_count)) Is ColumnHeaderCell Then
        ' テンプレートの列ヘッダセクションに配置されているColumnHeaderCellのFlatStyleプロパティにFlatを設定します。
        DirectCast(Template1.ColumnHeaders(0).Cells(_count), ColumnHeaderCell).FlatStyle = FlatStyle.Flat

    End If
Next

' GcMultiRowコントロールにテンプレートを再設定します。
GcMultiRow1.Template = Template1

' ヘッダのハイライト表示を有効にします。
GcMultiRow1.HeaderCellHighlightMode = HighlightMode.ContainedCells

' ヘッダのハイライト表示の背景色と前景色を設定ます。
GcMultiRow1.ColumnHeadersDefaultHeaderCellStyle.SelectionBackColor = Color.LightGray
GcMultiRow1.ColumnHeadersDefaultHeaderCellStyle.SelectionForeColor = Color.Green
// GcMultiRowコントロールに設定されているテンプレートを取得します。
Template template1 = gcMultiRow1.Template;

for(int _count = 0; _count<template1.ColumnHeaders[0].Cells.Count; _count++)
{
    if(template1.ColumnHeaders[0].Cells[_count] is ColumnHeaderCell)
    {
        // テンプレートの列ヘッダセクションに配置されているColumnHeaderCellのFlatStyleプロパティにFlatを設定します。
        (template1.ColumnHeaders[0].Cells[_count] as ColumnHeaderCell).FlatStyle = FlatStyle.Flat;
    }
}

// GcMultiRowコントロールにテンプレートを再設定します。
gcMultiRow1.Template = template1;

// ヘッダのハイライト表示を有効にします。
gcMultiRow1.HeaderCellHighlightMode = HighlightMode.ContainedCells;

// ヘッダのハイライト表示の背景色と前景色を設定ます。
gcMultiRow1.ColumnHeadersDefaultHeaderCellStyle.SelectionBackColor = Color.LightGray;
gcMultiRow1.ColumnHeadersDefaultHeaderCellStyle.SelectionForeColor = Color.Green;            
対象セルのカスタマイズ

ColumnHeaderCellクラスまたはRowHeaderCellクラスのHighlightRelatedCellNamesプロパティを使用すると、セルを選択したときにハイライト表示する対象のヘッダセルを任意に指定できます。

HighlightRelatedCellNamesプロパティには、ヘッダセルをハイライト表示するために選択が必要となるセルの名前を追加します。
次のコードでは、TextBoxCell1とTextBoxCell3が選択されたときにColumnHeaderCell1がハイライト表示します。

Imports GrapeCity.Win.MultiRow

' ColumnHeaderCell1のハイライト表示に必要なセルを設定します。
Dim ColumnHeaderCell1 As ColumnHeaderCell = DirectCast(GcMultiRow1.ColumnHeaders(0).Cells("ColumnHeaderCell1"), ColumnHeaderCell)
ColumnHeaderCell1.HighlightRelatedCellNames.Add(New List(Of String)(New String() {"TextBoxCell1", "TextBoxCell3"}))
                                                                
using GrapeCity.Win.MultiRow;

// columnHeaderCell1のハイライト表示に必要なセルを設定します。
ColumnHeaderCell columnHeaderCell1 = gcMultiRow1.ColumnHeaders[0].Cells["columnHeaderCell1"] as ColumnHeaderCell;
columnHeaderCell1.HighlightRelatedCellNames.Add(new List<string>(new string[] { "textBoxCell1", "textBoxCell3" }));
                                                                

参照

 

 


© 2008-2015 GrapeCity inc. All rights reserved.