FlexGrid for WinForms
ユーザー操作
> ユーザー操作

このトピックでは、エンドユーザーに FlexGrid の列の操作を許可する方法について説明します。

列のユーザー操作

編集の許可

FlexGrid では、デフォルトで、グリッドのすべての列を編集できます。ただし、Column オブジェクトの AllowEditing プロパティを false に設定することで、特定の列の編集を無効にすることができます。また、C1FlexGrid.AllowEditing プロパティを false に設定すると、グリッド全体の編集を無効にできます。編集の詳細については、「編集」を参照してください。

次のコードは、WinForms FlexGrid の編集を無効にする一方で、1 つの列は編集可能のまま残す方法を示しています。

// グリッド全体で編集を無効にします
c1FlexGrid1.AllowEditing = false;

// 3列目でのみ編集を有効にします
c1FlexGrid1.Cols[3].AllowEditing = true;
' グリッド全体で編集を無効にします
c1FlexGrid1.AllowEditing = False

' 3列目でのみ編集を有効にします
c1FlexGrid1.Cols(3).AllowEditing = True
                        

ドラッグの許可

デフォルトでは、ユーザーが列ヘッダーをドラッグして目的の位置にドロップすることで、列を並べ替えることができます。ただし、FlexGrid.AllowDragging プロパティと Column.AllowDragging プロパティを使用して、この動作を変更できます。特定の列のドラッグを無効にするには、その列の Column.AllowDragging プロパティを false に設定します。一方、FlexGrid.AllowDragging プロパティを Rows または None に設定すると、列の並べ替えがグリッドレベルで無効になります。このプロパティは、AllowDraggingEnum に含まれる値を受け取ります。また、設計時に列の並べ替えを無効にするには、C1FlexGrid タスクメニューの[列の順序変更を有効にする]チェックボックスをオフにします。タスクメニューの詳細については、「タスクメニュー」を参照してください。

次のコードは、WinForms FlexGrid で列のドラッグを有効にする方法を示しています。

// グリッド全体ですべての列のドラッグを許可します
c1FlexGrid1.AllowDragging = C1.Win.C1FlexGrid.AllowDraggingEnum.Columns;

// 特定の列のドラッグを無効にします
c1FlexGrid1.Cols[3].AllowDragging = false;  
 ' グリッド全体ですべての列のドラッグを許可します
 c1FlexGrid1.AllowDragging = C1.Win.C1FlexGrid.AllowDraggingEnum.Columns

 ' 特定の列のドラッグを無効にします
 c1FlexGrid1.Cols(3).AllowDragging = False

フリーズの許可

実行時にエンドユーザーが列をフリーズできるようにするには、C1FlexGrid クラスの AllowFreezing プロパティを使用します。これは、AllowFreezingEnum に含まれる値を受け取ります。このプロパティが Columns または Both に設定されている場合は、マウスポインタをヘッダー列の端に置くと鍵のアイコンが表示されます。ユーザーは、鍵のアイコンをクリックしてドラッグすることで列をフリーズできます。

次のコードは、WinForms FlexGrid の列のフリーズをユーザーに許可する方法を示しています。

 // 実行時に列のフリーズを許可します
 c1FlexGrid1.AllowFreezing = C1.Win.C1FlexGrid.AllowFreezingEnum.Columns;
' 実行時に列のフリーズを許可します
c1FlexGrid1.AllowFreezing = C1.Win.C1FlexGrid.AllowFreezingEnum.Columns
                                        

ピン留めの許可

FlexGrid では、実行時に特定の列または列範囲をピン留めすることをユーザーに許可できます。それには、C1FlexGrid クラスの AllowPinning プロパティを使用します。このプロパティを設定すると、列ヘッダーにピンボタン(ピンボタン)が追加されます。ユーザーは、このボタンを使用して実行時に列をピン留めし、グリッドを水平方向にスクロールしてもそれらの列がビューに留まるようにすることができます。このプロパティは、AllowPinning 列挙 に含まれる値を受け取ります。これを使用して、1 個の列または列範囲をピン留めできます。 このプロパティが ColumnRange に設定されている場合、ユーザーは左側の列からクリックした列までのすべての列を 1 回の操作でピン留めまたはピン留め解除できます。

列のピン留め

WinForms FlexGrid で、複数の列のピン留めをユーザーに許可するには、次のコードを使用します。

// ユーザーが列範囲をピン留めできるようにします。
c1FlexGrid1.AllowPinning = C1.Win.C1FlexGrid.AllowPinning.ColumnRange;        
' ユーザーが列範囲をピン留めできるようにします。 
c1FlexGrid1.AllowPinning = C1.Win.C1FlexGrid.AllowPinning.ColumnRange

ソートを許可

デフォルトの FlexGrid では、グリッド全体で列のソートが有効になっています。また、C1FlexGrid クラスの AllowSorting プロパティの値が Auto に設定されています。このモードでは、ユーザーが列ヘッダーをクリックして 1 個の列を、また[Ctrl]キーを押しながら列ヘッダーをクリックして複数の列をソートできます。複数の列をソートすると、グリッドの列ヘッダーのソート方向を示すグリフの横にソートインデックスが表示されます。 また、AllowSortingEnum 列挙を使用して、ソートを禁止したり、列のソート方法のみを変更することができます。AllowSortingEnum 列挙では、列の自動ソート、1 個の列のソート、複数の列または列範囲のソートを許可するかどうか、またはソートを禁止するかどうかを選択できます。

WinForms FlexGrid で複数列のソートを有効にするには、次のコードを使用します。AllowSorting プロパティが MultiColumn に設定されている場合、ユーザーは列ヘッダーを続けてクリックするだけで、複数の列をソートできます。 

// グリッドで複数列の並べ替えを有効にします
c1FlexGrid1.AllowSorting = C1.Win.C1FlexGrid.AllowSortingEnum.MultiColumn;

// 1列のみの並べ替えを無効にします
c1FlexGrid1.Cols[1].AllowSorting = false; 
' グリッドで複数列の並べ替えを有効にします
c1FlexGrid1.AllowSorting = C1.Win.C1FlexGrid.AllowSortingEnum.MultiColumn

' 1列のみの並べ替えを無効にします
c1FlexGrid1.Cols(1).AllowSorting = False
                                        

特定の列のソートを無効にするには、その列の Column.AllowSorting プロパティを false に設定する必要があります。ソートの詳細については、「ソート」を参照してください。

フィルタの許可

デフォルトの FlexGrid では、実行時のフィルタ処理は許可されません。ただし、C1FlexGrid.AllowFiltering プロパティを true に設定することで、フィルタ処理を有効にできます。特定の列に適用するフィルタのタイプを定義するには、Column.AllowFiltering プロパティを使用します。これは、AllowFiltering 列挙に含まれる次の値を受け取ります。

AllowFiltering の値 説明
Default ColumnFilter タイプのフィルタが自動的に作成されます。このフィルタは、値フィルタと条件フィルタの組み合わせです。
ByValue ValueFilter タイプのフィルタが自動的に作成されます。このフィルタは、選択可能な値のチェックボックスリストを表示します。リストでチェックボックスがオフにされた値は、フィルタによって除外されます。
ByCondition ConditionFilter タイプのフィルタが自動的に作成されます。このフィルタは、条件を構成するために Equalsis Greater thanContainsBegins with などのオプションを提供します。フィルタで And 演算子と Or 演算子を使用して、2 つの条件を組み合わせることもできます。
Custom フィルタは自動的に作成されませんが、独自のフィルタを定義し、それを Column クラスの Filter プロパティに明示的に割り当てることができます。
None 列のフィルタ処理は無効になります。

フィルタ処理の詳細については、「フィルタ」を参照してください。

次のコードは、WinForms FlexGrid でフィルタ処理を有効にする方法とフィルタの適用方法を示しています。

 // グリッドレベルでのフィルタリングを許可します
 c1FlexGrid1.AllowFiltering = true;

 // 最初の列に条件フィルタを適用します
 c1FlexGrid1.Cols[1].AllowFiltering = C1.Win.C1FlexGrid.AllowFiltering.ByCondition;
' グリッドレベルでのフィルタリングを許可します
c1FlexGrid1.AllowFiltering = True

' 最初の列に条件フィルタを適用します
c1FlexGrid1.Cols(1).AllowFiltering = C1.Win.C1FlexGrid.AllowFiltering.ByCondition
                                        

サイズ変更の許可

FlexGrid では、デフォルトで、グリッドのすべての列のサイズを変更できます。この動作を変更するには、C1FlexGrid クラスの AllowResizing プロパティを使用します。このプロパティは、AllowResizingEnum 列挙に含まれる値を受け取ります。これを使用して、列、行、またはその両方のサイズを変更したり、どの要素もサイズ変更しないことを指定できます。この列挙では、行、列、またはその両方のサイズを一様に変更することもできます。つまり、1 つの列または行のサイズを変更すると、残りの列と行のサイズも自動的に変更されます。また、FlexGrid にはブール型の Column.AllowResizing プロパティもあります。これを使用して、特定の行または列のサイズ変更を有効/無効にできます。

次のコードは、WinForms FlexGrid の列のサイズ変更をユーザーに許可する方法を示しています。

// 列と行のサイズを均一に変更できます
c1FlexGrid1.AllowResizing = C1.Win.C1FlexGrid.AllowResizingEnum.Both;

// 最初の列のサイズ変更のみを無効にします
c1FlexGrid1.Cols[1].AllowResizing = false;
' 列と行のサイズを均一に変更できます
c1FlexGrid1.AllowResizing = C1.Win.C1FlexGrid.AllowResizingEnum.Both

' 最初の列のサイズ変更のみを無効にします
c1FlexGrid1.Cols(1).AllowResizing = False

コンテキストメニューの有効化

FlexGrid では、実行時に列操作に関連するアクションをすばやく簡単に実行するために、列コンテキストメニューがサポートされています。右クリックで列コンテキストメニューを使用するには、C1FlexGrid クラスにある ColumnContextMenuEnabled プロパティを true に設定する必要があります。デフォルトでは、このプロパティは false に設定されています。 

列のコンテキストメニュー

列のコンテキストメニューには、次のオプションがあります。

オプション 説明
昇順でソート 列を昇順にソートします。
降順でソート 列を降順にソートします。
この列でグループ化 マウスポインタが置かれている列に基づいてグリッドデータをグループ化します。
グループ化解除 グリッドデータのグループ化を解除します。このオプションは、グリッドがグループ化の状態である場合にのみ表示されます。
この列を非表示にする マウスポインタが置かれている列を非表示にします。
自動サイズ設定 最長の値に合わせて列のサイズを調整します。
自動サイズ設定(すべての列) 各列の最長の値に合わせて、すべての列のサイズを調整します。
// 列のコンテキストメニューを有効にします
c1FlexGrid1.ColumnContextMenuEnabled = true; 
' 列のコンテキストメニューを有効にします
c1FlexGrid1.ColumnContextMenuEnabled = True
関連トピック