MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集
インジケータの表示位置(行インデックス)を変更する

複数行の列ヘッダを定義している場合、ColumnクラスのAutoSortIndexプロパティを設定することでインジケータの表示位置(行インデックス)を列単位で変更することができます。なお、列ヘッダセルの結合状態によってはインジケータが表示されないこともありますが、この際にも本プロパティの設定によって表示位置を明示的に指定する必要があります。

【実行例】

インジケータの変更

  • 自動ソート機能(ColumnクラスのAllowAutoSortプロパティ=True)を設定した列ヘッダにはソート可能な状態を示すインジケータ (デフォルトはひし形:変更可、非表示不可) が常に表示されます。昇順/降順インジケータについては非表示設定(ColumnクラスのShowSortIndicatorプロパティ=False)が有効となりますが、自動ソート機能を設定している場合、ソート可能インジケータは常に表示されますので、非表示としたい場合には独自のアイコンを設定するなどの対応が必要となります。

    ソートインジケータ

  • 昇順/降順共に未入力セル(null/Nothing)は最後にソートされます。String.Emptyは他の文字列と同時にソートされます。
  • 自動ソート機能によってソートされるのは表示上のデータのみであり、実データの並び順(データモデル上の並び順)には 一切の影響を与えません。そのため、Excelファイルへのエクスポート時にはソートされていない実データの並び順で出力されますので、このような場合は実データを直接ソートするSortRangeメソッド(SheetViewクラスメンバ)呼び出しを行うことで対応する必要もあります。
  • 結合セルを含むシート上にてソートを実行(※SheetViewクラスのSortRangeメソッドではソートできません)した場合、結合セルは 一時的に非表示となります。この場合、ResetViewRowIndexesメソッドおよびResetViewColumnIndexesメソッド(いずれもSheetView.DocumentModelsクラスメンバ)呼び出しを行うことでソート前の状態にリセットすることができます。
                      
                   FpSpread1.ActiveSheet.Models.ResetViewRowIndexes()
                   FpSpread1.ActiveSheet.Models.ResetViewColumnIndexes()                       
    

 private void Form1_Load(object sender, System.EventArgs e)
 {

  // 自動ソート機能を有効にします
  fpSpread1.ActiveSheet.ColumnHeader.RowCount = 3;
  fpSpread1.ActiveSheet.Columns[0, 2].AllowAutoSort = true;

  // インジケータを表示させるインデックスを列ごとに変更します
  fpSpread1.ActiveSheet.Columns[0].AutoSortIndex = 0;
  fpSpread1.ActiveSheet.Columns[1].AutoSortIndex = 1;
  fpSpread1.ActiveSheet.Columns[2].AutoSortIndex = 2;

 }
 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

  ' 自動ソート機能を有効にします
  FpSpread1.ActiveSheet.ColumnHeader.RowCount = 3
  FpSpread1.ActiveSheet.Columns(0, 2).AllowAutoSort = True

  ' インジケータを表示させるインデックスを列ごとに変更します
  FpSpread1.ActiveSheet.Columns(0).AutoSortIndex = 0
  FpSpread1.ActiveSheet.Columns(1).AutoSortIndex = 1
  FpSpread1.ActiveSheet.Columns(2).AutoSortIndex = 2

 End Sub

 

 


© MESCIUS inc. All rights reserved.