MESCIUS SPREAD for Windows Forms 17.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 |