PowerTools SPREAD for Windows Forms 10.0J
ソートインジケータ

ソートインジケータの表示では、次の設定が可能です。

それぞれの設定方法について、以下で説明します。

独自のイメージの使用

列ヘッダに表示されるソートインジケータに独自のイメージを表示できます。次の図の先頭列(A 列)には、既定のソートインジケータが表示されています。

ソートインジケータ

次のいずれかの方法で、ソートインジケータに独自のイメージを表示できます。

表示/非表示の設定

ColumnオブジェクトのShowSortIndicatorプロパティ、またはSheetViewオブジェクトのSetColumnShowSortIndicatorメソッドで、対象の列にソートインジケータを表示するかどうかを設定できます。この設定は、次に、対象の列に対して、シートのAutoSortColumnメソッドが実行されたときに有効になります。

マルチヘッダでの行インデックスの指定

列ヘッダが複数行で構成される場合、ソートインジケータを表示するヘッダの行インデックスを、SheetViewオブジェクトのColumnHeaderAutoSortIndexプロパティ、またはColumnHeaderオブジェクトのAutoSortIndexプロパティで設定できます。既定では、ソートインジケータは、ヘッダの一番下の行に表示されます。

なお、自動テキストを表示する行を指定するには、SheetViewオブジェクトのColumnHeaderAutoTextIndexプロパティ、またはColumnHeaderオブジェクトのAutoTextIndexプロパティを設定します。

サンプルコード

次のサンプルコードは、ソートインジケータに独自のイメージを表示するため、ColumnHeaderRendererクラスを継承する、列ヘッダのカスタムレンダラクラスを作成します。

C#
コードのコピー
// form loadセクションで並べ替え(およびフィルタリング)を許可します。
private void Form1_Load(object sender, System.EventArgs e)
{
    fpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Renderer = new myColumnHeaderRenderer();
    fpSpread1.Sheets[0].Columns[0].AllowAutoSort =true;
    fpSpread1.Sheets[0].Columns[0].AllowAutoFilter =true;
}
// 新規の列ヘッダレンダラを定義します。
public class myColumnHeaderRenderer : FarPoint.Win.Spread.CellType.ColumnHeaderRenderer
{
    // ソートインジケータの描画メソッドをオーバーライドします。
    override public void PaintSortIndicator(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, float zoomFactor)
    {
        g.FillRectangle(new SolidBrush(Color.Red), r);
    }
    // フィルタリングインジケータの描画メソッドをオーバーライドします。
    override public void PaintFilterIndicator(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, float zoomFactor)
    {
        g.FillRectangle(new SolidBrush(Color.Blue), r);
    }
}
Visual Basic
コードのコピー
' form loadセクションで並べ替え(およびフィルタリング)を許可します。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    FpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Renderer = New myColumnHeaderRenderer
    FpSpread1.Sheets(0).Columns(0).AllowAutoSort = True
    FpSpread1.Sheets(0).Columns(0).AllowAutoFilter = True
End Sub
' 新規の列ヘッダレンダラを定義します。
Public Class myColumnHeaderRenderer
    Inherits FarPoint.Win.Spread.CellType.ColumnHeaderRenderer
    ' ソートインジケータの描画メソッドをオーバーライドします。
    Public Overrides Sub PaintSortIndicator(ByVal g As Graphics, ByVal r As Rectangle, ByVal appearance As FarPoint.Win.Spread.Appearance, ByVal zoomFactor As Single)
        g.FillRectangle(New SolidBrush(Color.Red), r)
    End Sub 'PaintSortIndicator
    ' フィルタリングインジケータの描画メソッドをオーバーライドします。
    Public Overrides Sub PaintFilterIndicator(ByVal g As Graphics, ByVal r As Rectangle, ByVal appearance As FarPoint.Win.Spread.Appearance, ByVal zoomFactor As Single)
        g.FillRectangle(New SolidBrush(Color.Blue), r)
    End Sub
End Class
関連トピック

 

 


© 2004-2017, GrapeCity inc. All rights reserved.