MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集 > 行フィルタリング > ドロップダウンリストの表示順を変更する |
デフォルトのドロップダウンリストではアイテムが文字列によってソートされていますが、フィルタ列定義(FilterColumnDefinitionクラス)を作成し、フィルタ動作(FilterListBehavior列挙体)を指定することによってドロップダウンリストの表示順を変更することができます。次のサンプルでは、昇順(数値)による並べ替えを行っています。
※このサンプルはシートのAutoFilterModeがFilterGadgetに設定されている場合のみ有効です。
|
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