作成日: 2022/07/21 最終更新日: 2022/07/21
文書種別
使用方法
詳細
FlexGridのSelectionModeプロパティを「ListBox」に設定すると、[Ctrl]キーを押しながらクリックして、連続しない(隣り合わない)複数の行を選択できます。
しかし、セル、またはセル範囲に関しては、連続しないものを選択できるようなオプションは組み込まれていません。
これを実現するために、C1FlexGrid を継承したクラスを使用し、複数のCellRangeオブジェクトを返すことで任意のマルチセレクトを実装する方法があります。

◎サンプルコード(VB:一部抜粋)
全体的な実装方法を、製品収録のMultiSelectionサンプルで紹介していますので、ご参照ください。
※インストール先
C:\Users\<名前>\Documents\ComponentOne Samples\WinForms\v4.5.2\FlexGrid\CS\MultiSelection
このサンプルを実行し、[Ctrl]や[Shift]キーを使用して、複数のセルやセル範囲の選択ができることをご確認ください。
しかし、セル、またはセル範囲に関しては、連続しないものを選択できるようなオプションは組み込まれていません。
これを実現するために、C1FlexGrid を継承したクラスを使用し、複数のCellRangeオブジェクトを返すことで任意のマルチセレクトを実装する方法があります。
◎サンプルコード(VB:一部抜粋)
Public Class MultiSelectFlexGrid
Inherits C1FlexGrid
' ** fields
Private _selections As New ArrayList()
' ** ctor
Public Sub New()
MyBase.SelectionMode = SelectionModeEnum.Default
End Sub
' ** object model
' SelectionModeプロパティはDefault以外に設定できないようにします。
<Browsable(False), EditorBrowsable(EditorBrowsableState.Never)> _
Public Shadows Property SelectionMode() As SelectionModeEnum
Get
Return MyBase.SelectionMode
End Get
Set(ByVal Value As SelectionModeEnum)
End Set
End Property
' 選択範囲を取得します。
' Return : CellRangeオブジェクト
Public Function GetSelections() As CellRange()
Return CType(_selections.ToArray(GetType(CellRange)), CellRange())
End Function
◎サンプルコード(C#:一部抜粋) public class MultiSelectFlexGrid : C1FlexGrid
{
// ** fields
private ArrayList _selections = new ArrayList();
// ** ctor
public MultiSelectFlexGrid()
{
base.SelectionMode = SelectionModeEnum.Default;
}
// ** object model
///
/// SelectionModeプロパティはDefault以外に設定できないようにします。
///
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
new public SelectionModeEnum SelectionMode
{
get { return base.SelectionMode; }
set {}
}
///
/// 選択範囲を取得します。
///
/// Return : CellRangeオブジェクト
public CellRange[] GetSelections()
{
return (CellRange[])_selections.ToArray(typeof(CellRange));
}
全体的な実装方法を、製品収録のMultiSelectionサンプルで紹介していますので、ご参照ください。
※インストール先
C:\Users\<名前>\Documents\ComponentOne Samples\WinForms\v4.5.2\FlexGrid\CS\MultiSelection
このサンプルを実行し、[Ctrl]や[Shift]キーを使用して、複数のセルやセル範囲の選択ができることをご確認ください。