'宣言 Public Property SelectionStrategyFilter As Infragistics.Win.ISelectionStrategyFilter
public Infragistics.Win.ISelectionStrategyFilter SelectionStrategyFilter {get; set;}
UltraGridOverride オブジェクトのプロパティを使用することで、各種オブジェクトについてどのような選択を許可するかを指定できます。UltraGridOverride.SelectTypeCell、UltraGridOverride.SelectTypeCol、UltraGridOverride.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 ); } } }