'宣言 Public Property SelectionStrategyFilter As Infragistics.Win.ISelectionStrategyFilter
public Infragistics.Win.ISelectionStrategyFilter SelectionStrategyFilter {get; set;}
Imports Infragistics.Win.UltraWinTree Public Class Form1 Inherits System.Windows.Forms.Form Implements Infragistics.Win.ISelectionStrategyFilter Private nodeSelectionStrategy As MyCustomSelectionStrategy Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' カスタムの選択方式を作成します Me.nodeSelectionStrategy = New MyCustomSelectionStrategy(Me.ultraTree1) ' ツリー コノトロールの SelectionStrategyFilter プロパティを ' ISelectionStrategyFilter インターフェイスを実装する ' オブジェクトに設定します ' (この場合はこの形式です) Me.ultraTree1.SelectionStrategyFilter = Me End Sub Public Function GetSelectionStrategy(ByVal item As Infragistics.Shared.ISelectableItem) As Infragistics.Win.ISelectionStrategy Implements Infragistics.Win.ISelectionStrategyFilter.GetSelectionStrategy ' 項目がノードの場合はカスタムな方法を返します If TypeOf (item) Is UltraTreeNode Then Return Me.nodeSelectionStrategy End If ' nothing を返すと、ツリーによって適切な方式が提供されます Return Nothing End Function End Class ' PLF で定義されている選択方式の 1 つから ' クラスを派生します 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 ' カスタムのマウス ダウン処理を実行します ' ... Return MyBase.OnMouseDown(item, msginfo) End Function End Class
using System.Diagnostics; using Infragistics.Win.UltraWinTree; public class Form1 : System.Windows.Forms.Form, Infragistics.Win.ISelectionStrategyFilter { private MyCustomSelectionStrategy nodeSelectionStrategy; private void Form1_Load(object sender, System.EventArgs e) { // カスタムの選択方式を作成します this.nodeSelectionStrategy = new MyCustomSelectionStrategy(this.ultraTree1 ); // ツリー コノトロールの SelectionStrategyFilter プロパティを // ISelectionStrategyFilter インターフェイスを実装する // オブジェクトに設定します // (この場合はフォームです) this.ultraTree1.SelectionStrategyFilter = this; } public Infragistics.Win.ISelectionStrategy GetSelectionStrategy(Infragistics.Shared.ISelectableItem item) { // 項目がノードの場合はカスタム方式を返します if ( item is UltraTreeNode ) return this.nodeSelectionStrategy; // null を返すと、ツリーによって適切な方式が提供されます return null; } } // PLF で定義されている選択方式の 1 つから // クラスを派生します internal class MyCustomSelectionStrategy : SelectionStrategyExtended { internal MyCustomSelectionStrategy( ISelectionManager manager ) : base( manager ) { } public override bool OnMouseDown(Infragistics.Shared.ISelectableItem item, ref Infragistics.Win.MouseMessageInfo msginfo) { // カスタムのマウス ダウン処理を実行します // ... return base.OnMouseDown( item, ref msginfo ); } }