FlexGrid では、デフォルトで、マウスまたはキーボードを使用して隣接する複数のセルを一度に選択したり、行または列のヘッダーをクリックしてその行または列全体を選択することができます。ただし、このデフォルトの動作を変更して、セル、行、列などの単位で選択することもできます。それには、C1FlexGrid クラスの SelectionMode プロパティを使用します。このプロパティは、SelectionModeEnum 列挙に含まれる値を受け取ります。 次の表内のスナップショットは、以下の各モードで要素がどのように選択されるかを示しています。
値 | 説明 | スナップショット |
---|---|---|
Default | マウスまたはキーボードを使用して、隣接する複数のセルを一度に選択できます。また、行または列のヘッダーをクリックすることで、その行または列全体を選択できます。 | |
Cell | 一度に 1 個のセルを選択できます。 | |
CellRange | マウスまたはキーボードを使用して、隣接する複数のセルを一度に選択できます。 | |
Column | 一度に 1 個の列を選択できます。 | |
ColumnRange | 一度に隣接する複数の列を選択できます。 | |
ListBox | [Ctrl]キーを使用して、隣接していない複数の行を選択できます。 | |
Row | 一度に 1 つの行を選択できます。 | |
RowRange | 一度に隣接する複数の行を選択できます。 | |
MultiRange | [Ctrl]キーを使用して、連続していないセルの複数のブロックを選択できます。 |
次のコード スニペットは、SelectionMode プロパティを MultiRange に設定して、グリッドで複数範囲選択を有効にする方法を示しています。
C# |
コードのコピー
|
---|---|
c1FlexGrid1.SelectionMode = C1.Win.FlexGrid.SelectionModeEnum.MultiRange; |
FlexGrid では、コードを使用して、さまざまな方法で選択範囲を設定できます。1 個のセル、セル範囲、複数の行など、選択範囲の要件に応じて、以下の方法を使用できます。
選択範囲 | メソッド/プロパティ | サンプルコード | ||||
---|---|---|---|---|---|---|
1 個のセル | Row プロパティと Col プロパティを設定します。 これらのプロパティのデフォルト値は 1 です。 したがって、デフォルトでは、グリッドの左上にある最初のスクロール可能セルに選択範囲が設定されます。 |
|
||||
1 個のセルを選択するには、Select(rowIndex, colIndex) メソッドを呼び出します。 |
|
|||||
セル範囲 | RowSel プロパティと ColSel プロパティを設定します。 選択範囲は、Row プロパティと Col プロパティで設定された値から、指定された行と列までに設定されます。ブロック選択範囲を指定するには、RowSel と ColSel を設定する前に Row と Col を設定する必要があります。 |
|
||||
1 回の呼び出しで 1 つのセル範囲を選択するには、Select(CellRange, Boolean) メソッドを呼び出します。 |
|
|||||
行 (SelectionModes = SelectionModesEnum. ListBox の場合) |
隣接していない行を選択するには、それぞれの行オブジェクトに対して、Row.Selected プロパティを true に設定します。 |
|
WinForms FlexGrid の選択範囲を取得するには、C1FlexGrid クラスの Selection プロパティを使用します。
デフォルトでは、グリッドセルをダブルクリックすると、セルの状態が編集モードに変わり、マウスポインタの位置にカーソルが表示されます。この動作を変更して、セルのダブルクリックでセルの値を選択することができます。それには、BeforeDoubleClick イベントでダブルクリックを検出して無効にします。次に、StartEditing メソッドを呼び出して編集モードに入り、エディタを TextBox に変更してから、SelectAll メソッドを呼び出してセル値を選択します。
次のコードは、ダブルクリックで WinForms FlexGrid のセルのテキストを選択する方法を示しています。
フッターに Excel スタイルのデータサマリーを表示する機能を提供することで、選択したセル範囲で実行された基本的な機能と操作の統計を表示できます。 これらの関数または操作には、コンテキスト メニューから選択したセルに適用できる合計、平均、カウント、最大数、最小数、個別のカウントなどの集計操作が含まれます。 AggregateDefinition クラスの Aggregateプロパティを使用して、選択したセル範囲のデータ概要を提供できます。
Aggregate プロパティは AggregateEnum 列挙体を使用して、次のいずれかの値を設定することにより、セルに適用される集計関数を設定します。
FlexGridのフッターに選択統計を表示するには、まず、グリッドの下部にドッキングされた「tslSelectionStatistics」という名前の ToolStripLabel を追加します。次に、以下のコードを C1FlexGridBase クラスの SelChange イベントに追加します。 このイベントは、ユーザーがグリッド内でマウスを使用して選択範囲を拡張すると発生します。
C# |
コードのコピー
|
---|---|
private void c1FlexGrid1_SelChange(object sender, EventArgs e) { var text = string.Empty; if (!flexGrid1.Selection.IsSingleCell) { text = $"Average: {flexGrid1.Aggregate(AggregateEnum.Average):F2} " + $"Count: {flexGrid1.Aggregate(AggregateEnum.Count)} " + $"Summary: {flexGrid1.Aggregate(AggregateEnum.Sum):F2}"; } //ツールストリップ ラベルに表示されるテキストを設定します。 tslSelectionStatistics.Text = text; } |