バージョン

SelectionStrategyFilter プロパティ

コントロールの選択方式フィルターを取得または設定します。
シンタックス
'宣言
 
Public Property SelectionStrategyFilter As Infragistics.Win.ISelectionStrategyFilter
public Infragistics.Win.ISelectionStrategyFilter SelectionStrategyFilter {get; set;}
解説

UltraGridOverride オブジェクトのプロパティを使用することで、各種オブジェクトについてどのような選択を許可するかを指定できます。UltraGridOverride.SelectTypeCellUltraGridOverride.SelectTypeColUltraGridOverride.SelectTypeGroupByRow および UltraGridOverride.SelectTypeRow プロパティは、対応するオブジェクト タイプに選択方式を指定するために使用されます。

UltraWinGrid は、選択方式を使用して、ユーザーがコントロールで実行できる選択タイプを制御します。選択方式とは、複数選択と単一選択、範囲選択と個別選択、不連続選択、選択できるオブジェクトのタイプ、キーボードとマウスを使用した選択の開始および終了方法などのオプションに対応する属性の拡張セットです。選択方式は SelectionManager オブジェクトと ISelectionFilter インターフェイスを使用して実装されます。選択方式は Infragistics.Win アセンブリで定義されています。

UltraWinGrid には、グリッドで一般に実行される選択タイプがあらかじめ用意されています。また、提供されているクラスから独自の選択方式フィルターを派生したり、選択した仮想メソッドをオーバーライドすることにより、独自の選択方式を作成することもできます。

選択は主としてユーザー インターフェイスの機能であるため、選択ロジックはオブジェクトの UIElement に基づきます。オブジェクトが選択できるかどうかは、UIElement の Selectable プロパティによって決まります。

次の表は、UltraGrid コントロールのデフォルトのキーマッピングをリストしたものです。

KeyCode ActionCode StateRequired StateDisallowed SpecialKeysRequired SpecialKeysDisallowed
NextCell セル InEdit None AltCtrl
Tab NextCellByTab セル None なし すべて
PrevCell セル InEdit None AltCtrl
Tab PrevCellByTab セル None Shift AltCtrl
Up AboveCell セル InEdit None Alt
Down BelowCell セル InEdit None Alt
Home FirstRowInBand Row セル None AltCtrl
End LastRowInBand Row セル None AltCtrl
FirstRowInGrid None Row None Alt
Down FirstRowInGrid None Row None Alt
Home FirstRowInGrid Row セル Ctrl Alt
End LastRowInGrid Row セル Ctrl Alt
ExpandRow RowExpandable Cell, RowExpanded None Alt
CollapseRow RowExpanded セル None Alt
NextRow Row Cell, RowExpandable None Alt
NextRow Row, RowExpanded セル None Alt
Tab NextRowByTab Row セル None すべて
PrevRow Row Cell, RowExpanded None Alt
Tab PrevRowByTab Row セル Shift AltCtrl
Up AboveRow Row セル None Alt
Down BelowRow Row セル None Alt
Space ToggleCheckbox InEdit, IsCheckbox None なし すべて
Space ToggleCellSel セル InEdit None すべて
Space ToggleRowSel Row セル None すべて
Space DeactivateCell セル None Ctrl AltShift
Space ActivateCell Row セル Ctrl AltShift
NextCellInBand セル InEdit Ctrl Alt
PrevCellInBand セル InEdit Ctrl Alt
Home FirstCellInRow セル CellFirst, InEdit None AltCtrl
End LastCellInRow セル CellLast, InEdit None AltCtrl
Home FirstCellInBand CellFirst InEdit None AltCtrl
End LastCellInBand CellLast InEdit None AltCtrl
Home FirstCellInGrid セル InEdit Ctrl Alt
End LastCellInGrid セル InEdit Ctrl Alt
Prior PageUpCell セル InEdit None Alt
Next PageDownCell セル InEdit None Alt
Prior PageUpRow Row セル None Alt
Next PageDownRow Row セル None Alt
Esc UndoCell InEdit IsDroppedDown None Alt
Esc UndoRow Row InEdit None Alt
Esc CloseDropdown IsDroppedDown None なし Alt
Enter CloseDropdown IsDroppedDown None なし Alt
Enter ExpandRow GroupByRow IsDroppedDown, RowExpanded None Alt
Enter CollapseRow RowExpanded, GroupByRow IsDroppedDown None Alt
F4 ToggleDropdown HasDropdown, InEdit None なし Alt
Up ToggleDropdown HasDropdown, InEdit None Alt None
Down ToggleDropdown HasDropdown, InEdit None Alt None
F2 ToggleEditMode セル None なし Alt
F4 EnterEditModeAndDropdown HasDropdown InEdit None Alt
Up EnterEditModeAndDropdown HasDropdown InEdit Alt None
Down EnterEditModeAndDropdown HasDropdown InEdit Alt None
F6 NextRegion None InEdit None すべて
F6 PrevRegion None InEdit Shift AltCtrl
Delete DeleteRows Row InEdit None すべて
F2 EnterEditMode セル InEdit None Alt
F2 ExitEditMode InEdit None なし Alt

使用例
Imports Infragistics.Win
    Imports Infragistics.Win.UltraWinGrid


' Implement the ISelectionStrategyFilter interface on a class
' (in this case the form)
Public Class Form1
    Inherits System.Windows.Forms.Form
    Implements Infragistics.Win.ISelectionStrategyFilter

    Private cellSelectionStrategy As MyCustomSelectionStrategy

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
        ' Create the custom selection strategy
        Me.cellSelectionStrategy = New MyCustomSelectionStrategy(Me.UltraGrid1)

        ' Set the grid’s SelectionStrategyFilter property to the object that
        ' implements the ISelectionStrategyFilter interface.
        Me.UltraGrid1.SelectionStrategyFilter = Me

    End Sub

    Public Function GetSelectionStrategy(ByVal item As Infragistics.Shared.ISelectableItem) As Infragistics.Win.ISelectionStrategy Implements Infragistics.Win.ISelectionStrategyFilter.GetSelectionStrategy

        ' If the item is a cell return the custom strategy
        If TypeOf (item) Is UltraGridCell Then
            Return Me.cellSelectionStrategy
        End If

        ' Return null to have the grid provide an appropriate strategy
        Return Nothing

    End Function
End Class

' derive a class from one of the selection
' strategies defines in the PLF 
Friend Class MyCustomSelectionStrategy
    Inherits Infragistics.Win.SelectionStrategyExtended

    Public Sub New(ByVal manager As ISelectionManager)

        MyBase.New(manager)

    End Sub

    Public Overloads Overrides Function OnMouseDown(ByVal item As Infragistics.Shared.ISelectableItem, ByRef msginfo As Infragistics.Win.MouseMessageInfo) As Boolean

        ' Do some custom mouse down processing
        ' ...
        Return MyBase.OnMouseDown(item, msginfo)

    End Function
End Class
using System.Diagnostics;
	using Infragistics.Win;
	using Infragistics.Win.UltraWinGrid;

// Implement the ISelectionStrategyFilter interface on a class
// (in this case the form)
public class Form1 : 
		System.Windows.Forms.Form, 
		Infragistics.Win.ISelectionStrategyFilter
{

	private ISelectionStrategy cellSelectionStrategy;


	private void Form1_Load(object sender, System.EventArgs e)
	{

		// Set the grid’s SelectionStrategyFilter property to the object that
		// implements the ISelectionStrategyFilter interface.

		this.ultraGrid1.SelectionStrategyFilter = this;

		// Create the custom selection strategy

		this.cellSelectionStrategy = new MyCustomSelectionStrategy( this.ultraGrid1 );

	}

	public Infragistics.Win.ISelectionStrategy GetSelectionStrategy(Infragistics.Shared.ISelectableItem item)
	{

		// If the item is a cell return the custom strategy
		if ( item is UltraGridCell )
			return this.cellSelectionStrategy;

		return null;

	}

	// derive a class from one of the selection
	// strategies defines in the PLF 
	internal class MyCustomSelectionStrategy 
					: SelectionStrategyExtended
	{
		internal MyCustomSelectionStrategy( ISelectionManager manager ) 
			: base( manager )
		{
		}

		public override bool OnMouseDown(Infragistics.Shared.ISelectableItem item, ref Infragistics.Win.MouseMessageInfo msginfo)
		{

			// Do some custom mouse down processing
			// ...
			return base.OnMouseDown( item, ref msginfo );

		}
	}
}
参照