MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集
ドロップダウンリストの表示順を変更する

デフォルトのドロップダウンリストではアイテムが文字列によってソートされていますが、フィルタ列定義(FilterColumnDefinitionクラス)を作成し、フィルタ動作(FilterListBehavior列挙体)を指定することによってドロップダウンリストの表示順を変更することができます。次のサンプルでは、昇順(数値)による並べ替えを行っています。

※このサンプルはシートのAutoFilterModeがFilterGadgetに設定されている場合のみ有効です。

【実行例】

実行例

  • 表示色等を変更することはできません。
  • シート上にてフィルタリングされた行は一時的に非表示となるだけで、実際のデータには影響を与えません。そのため、Excelファイルへのエクスポート時には全ての行情報が出力されます。

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

  // 自動フィルタのフィルタガジェットを表示します
  fpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.FilterGadget;

  // 1列目に対して新しいフィルタ列定義を作成します
  // ドロップダウンリストを昇順に並べ替えます
  FarPoint.Win.Spread.FilterColumnDefinition fcd = new FarPoint.Win.Spread.FilterColumnDefinition(0, FarPoint.Win.Spread.FilterListBehavior.SortNumerically);

  // HideRowFilterオブジェクト(非表示フィルタ)を作成し、上記フィルタ列定義を追加します
  FarPoint.Win.Spread.HideRowFilter hf = new FarPoint.Win.Spread.HideRowFilter(fpSpread1.ActiveSheet);
  hf.AddColumn(fcd);

  // 作成した行フィルタオブジェクトをシート設定します
  fpSpread1.ActiveSheet.RowFilter = hf;

  fpSpread1.ActiveSheet.DefaultStyle.CellType = new FarPoint.Win.Spread.CellType.NumberCellType();
  fpSpread1.ActiveSheet.SetValue(0, 0, 10);
  fpSpread1.ActiveSheet.SetValue(1, 0, 100);
  fpSpread1.ActiveSheet.SetValue(2, 0, 50);
  fpSpread1.ActiveSheet.SetValue(3, 0, 40);
  fpSpread1.ActiveSheet.SetValue(4, 0, 80);
  fpSpread1.ActiveSheet.SetValue(5, 0, 1);
  fpSpread1.ActiveSheet.SetValue(6, 0, 65);
  fpSpread1.ActiveSheet.SetValue(7, 0, 20);
  fpSpread1.ActiveSheet.SetValue(8, 0, 30);
  fpSpread1.ActiveSheet.SetValue(9, 0, 35);
  fpSpread1.ActiveSheet.Columns[0].Width = 100;

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

  ' 自動フィルタのフィルタガジェットを表示します
  FpSpread1.ActiveSheet.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.FilterGadget

  ' 1列目に対して新しいフィルタ列定義を作成します
  ' ドロップダウンリストを昇順に並べ替えます
  Dim fcd As New FarPoint.Win.Spread.FilterColumnDefinition(0, FarPoint.Win.Spread.FilterListBehavior.SortNumerically)

  ' HideRowFilterオブジェクト(非表示フィルタ)を作成し、上記フィルタ列定義を追加します
  Dim hf As New FarPoint.Win.Spread.HideRowFilter(FpSpread1.ActiveSheet)
  hf.AddColumn(fcd)

  ' 作成した行フィルタオブジェクトをシート設定します
  FpSpread1.ActiveSheet.RowFilter = hf

  FpSpread1.ActiveSheet.DefaultStyle.CellType = New FarPoint.Win.Spread.CellType.NumberCellType
  FpSpread1.ActiveSheet.SetValue(0, 0, 10)
  FpSpread1.ActiveSheet.SetValue(1, 0, 100)
  FpSpread1.ActiveSheet.SetValue(2, 0, 50)
  FpSpread1.ActiveSheet.SetValue(3, 0, 40)
  FpSpread1.ActiveSheet.SetValue(4, 0, 80)
  FpSpread1.ActiveSheet.SetValue(5, 0, 1)
  FpSpread1.ActiveSheet.SetValue(6, 0, 65)
  FpSpread1.ActiveSheet.SetValue(7, 0, 20)
  FpSpread1.ActiveSheet.SetValue(8, 0, 30)
  FpSpread1.ActiveSheet.SetValue(9, 0, 35)
  FpSpread1.ActiveSheet.Columns(0).Width = 100

 End Sub

 

 


© MESCIUS inc. All rights reserved.