デフォルトでは、FlexGrid のエンドユーザーは、列ヘッダーをクリックすることで、1 つの列に昇順または降順のソートを適用できます。ただし、必要に応じてコードでデータのソートを実行できる柔軟性もあります。以下のセクションでは、ソートに関するさまざまな操作を実行する方法について説明します。
コードでソートを適用するには、C1FlexGrid クラスの Sort メソッドを呼び出します。このメソッドは、SortFlags 列挙をパラメータとして受け取ります。この列挙により、ソート順の設定、大文字小文字を区別しないなど、さまざまなソートオプションを提供できます。さまざまなオーバーロードメソッドを利用することで、1 つの列、セル範囲、行範囲、または列範囲に柔軟にソートを適用できます。
WinForms FlexGrid においてコードで列をソートし、ソートオプションを適用するには、次のコードを使用します。
コードを使用して、複数の列にソートを適用するには、Column クラスの Sort プロパティを使用し、SortFlags を UseColSort に設定して Sort() メソッドを呼び出します。Sort プロパティは、SortFlags 列挙に含まれる値を受け取ります。
次のコードは、コードを使用して WinForms FlexGrid の複数の列をソートする方法を示しています。
ユーザーが実行時に複数の列をソートできるようにするには、C1FlexGrid クラスの AllowSorting プロパティを MultiColumn に設定します。このプロパティは、AllowSortingEnum 列挙に含まれる値を受け取ります。
次のコードは、実行時にユーザーが WinForms FlexGrid の複数の列をソートできるようにする方法を示しています。
グリッドからソートを削除するには、C1FlexGrid クラスの SortDefinition プロパティを空の文字列に設定します。
次のコードは、WinForms FlexGrid からソートを削除する方法を示しています。
特定の列のソートを無効にするには、その Column オブジェクトの AllowSorting プロパティを false に設定する必要があります。
WinForms FlexGrid の特定の列のソートを無効にするには、次のコードを使用します。
通常、ソートの順序は、連結モードと非連結モードで異なります。連結モードの場合は、列ヘッダーがクリックされると、データテーブルの DefaultView.Sort プロパティと同様にソートが行われます。非連結モードの場合は、String.Compare メソッドに従って列がソートされるか、カルチャによっては大文字小文字が区別されてソートされます。
WinForms FlexGrid の列のソート順を指定する方法については、次のコードを参照してください。
FlexGrid には、よく使用されるシナリオに必要なソートオプション(大文字小文字を区別しない、表示値を使用するなど)がいくつか用意されています。ただし、ソート操作の柔軟性を高めたり、ソート操作を詳細に制御する必要がある場合は、IComparer クラスを使用して、カスタムロジックを記述することもできます。たとえば、次の例では、[Name]列をファイル拡張子でソートしています。 このサンプルコードでは、ファイル拡張子でソートするためのカスタムロジックが FileNameComparer クラスで実装され、これが C1FlexGrid クラスの Sort() メソッドにパラメータとして渡されます。
次のコードは、WinForms FlexGrid の列にカスタムソートを適用する方法を示しています。
カスタムソートの実装方法の詳細については、Custom Sort(カスタムソート)という名前の製品サンプルを参照してください。