このトピックでは、 WinGrid™ ColumnChooser で複数行選択を有効にする方法を説明します。この機能は、多数の列の表示状態および位置を変更する必要のあるシナリオで便利になります。
このトピックを理解するために、以下のトピックを参照することをお勧めします。
このトピックは、以下のセクションで構成されます。
WinGrid™ ColumnChooser では、グリッド列の表示状態、または位置を変更するためのフロント エンドを提供します。チューザーは、さまざまな方法で表示できます。たとえば、グリッドのボタンをクリックすると表示されるダイアログで、またはフォーム上のスタンドアロン コントロールとしても使用できます。
以下のスクリーンショットでは、グリッドのボタンをクリックすると表示されるディアログでの列チューザーの外観を示します:
各行のチェックボックスは、該当する列ヘッダーの表示状態を表します。行をチェック解除すると該当する列は非表示されます。以前のバージョンでは、単一列の選択のみでした。したがって、一度に単一列の表示状態のみ変更可能でした。列チューザーは、ドラッグ アンド ドロップで列の位置変更も可能にします。この操作も同様に一度に 1 列に制限されていました。UltraGridColumnChooser コントロールに MultiSelectEnabled という新しいプロパティを追加しました。このプロパティは、複数行選択時に有効化され、単一の操作で多数列の表示状態および位置の変更が可能になります。
以下のスクリーンショットでは、コントロール キーを押したまま、'Discontinued’、‘ProductName’ および ‘ReorderLevel' をクリックして、UltraGridColumnChooser コントロールの MultiSelectEnabled プロパティを True に設定した時の ColumnChooser を示します。通常の拡張選択です。
任意の選択行のチェックボックスをクリックするとすべての行がチェックされ、新規の値は選択領域の最初の行の現在の状態の反対に設定されます。たとえば、最初の行が選択済みの場合、選択領域のすべてのチェック状態は Unchecked になり、関連付けられた 3 つの列が非表示になります。Space キーを押すと同じ結果になります。すなわち、現在のアクティブ行だけではなく、すべての選択行のチェック状態が影響を受けます。さらに、選択行からドラッグ操作を開始するとすべての選択行がドラッグされます。
以下の表では、複数行選択をサポートするために UltraGridColumnChooser に追加されたプロパティをリストします:
以下のコード例では、UltraGridColumnChooser クラスのプロパティ設定を使用して列チューザーの複数行選択を有効化する方法を示します。
複数列選択がサポートされる列チューザーを設定します。
C# の場合:
using Infragistics.Win.UltraWinGrid;
// グリッドに列チューザーボタンを表示
this.ultraGrid1.DisplayLayout.Override.RowSelectorHeaderStyle = RowSelectorHeaderStyle.ColumnChooserButton;
// ColumnChooser ダイアログが表示される直前に発生する
// BeforeColumnChooserDisplayed イベントを処理します
this.ultraGrid1.BeforeColumnChooserDisplayed += new BeforeColumnChooserDisplayedEventHandler(ultraGrid1_BeforeColumnChooserDisplayed);
private void ultraGrid1_BeforeColumnChooserDisplayed(object sender, BeforeColumnChooserDisplayedEventArgs e)
{
// Set MultiSelectEnabled を true に設定します
e.Dialog.ColumnChooserControl.MultiSelectEnabled = true;
}
Visual Basic の場合:
Imports Infragistics.Win.UltraWinGrid
' グリッドに列チューザーボタンを表示
Me.ultraGrid1.DisplayLayout.Override.RowSelectorHeaderStyle = RowSelectorHeaderStyle.ColumnChooserButton
' ColumnChooser ダイアログが表示される直前に発生する
' BeforeColumnChooserDisplayed イベントを処理します
AddHandler ultraGrid1.BeforeColumnChooserDisplayed, AddressOf Me.ultraGrid1_BeforeColumnChooserDisplayed
Private Sub ultraGrid1_BeforeColumnChooserDisplayed(sender As Object, e As BeforeColumnChooserDisplayedEventArgs) Handles ultraGrid1.BeforeColumnChooserDisplayed
' Set MultiSelectEnabled を true に設定します
e.Dialog.ColumnChooserControl.MultiSelectEnabled = True
End Sub
このトピックの追加情報については、以下のトピックも合わせてご参照ください。