バージョン

SelectionStrategyFilter プロパティ

カスタムの選択フィルターを設定します。
シンタックス
'宣言
 
Public Property SelectionStrategyFilter As Infragistics.Win.ISelectionStrategyFilter
public Infragistics.Win.ISelectionStrategyFilter SelectionStrategyFilter {get; set;}
解説

SelectionStrategyFilter プロパティは、カスタマイズされた選択方式を実装するために使用できます。

非標準の選択規則が必要な場合にこれは役に立ちます。

この例によって、Ctrl または Shift キーを使用せずに複数項目を選択できます。

使用例
This example requires that the form on which the control resides implements the ISelectionStrategyFilter interface, i.e.:
Public Class myForm
Inherits System.Windows.Forms.Form
Implements Infragistics.Win.ISelectionStrategyFilter
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports Infragistics.Win.UltraWinSchedule.MonthViewSingle

	'	1.ISelectionStrategyFilter インターフェイスを実装するには、
	'	以下のカスタム選択方法クラスのインスタンスを返します
   Public Function GetSelectionStrategy(ByVal item As Infragistics.Shared.ISelectableItem) As Infragistics.Win.ISelectionStrategy Implements Infragistics.Win.ISelectionStrategyFilter.GetSelectionStrategy
   	Return New MySelectionStrategy(Me.ultraMonthViewSingle1)
   End Function

	'	2.コントロールの SelectionStrategyFilter プロパティをフォームの
	'	ISelectionStrategyFilter インターフェイスの実装への参照に設定します
	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		Me.ultraMonthViewSingle1.SelectionStrategyFilter = Me
	End Sub

#Region "MySelectionStrategy class"
' SelectionStrategySingle から派生しますマウスによって日の単一選択を許可します
' キーボードによって曜日の選択を有効し、週末の選択を無効にします
Public Class MySelectionStrategy
    Inherits Infragistics.Win.SelectionStrategySingle

    Public Sub New(ByVal manager As ISelectionManager)
        MyBase.New(manager)
    End Sub


    ' 選択方法のキーボード処理を処理しますこのオーバーライドされた
    ' バージョンでは、キーボードで週末を選択することはできません
    Public Overloads Overrides Function ProcessKeyBoardItem(ByVal item As Infragistics.Shared.ISelectableItem, ByVal shift As Boolean, ByVal control As Boolean) As Boolean
        '	選択可能な項目の型を決定します。Day オブジェクトの場合、
        '	キーボードで週末を選択することはできません
        Dim day As Infragistics.Win.UltraWinSchedule.Day = item
        If (Not day Is Nothing) Then
            '	曜日が土曜日または日曜日の場合、False を返します
            '	操作が実行されないことを示します
            If (day.Date.DayOfWeek = System.DayOfWeek.Saturday Or _
                day.Date.DayOfWeek = System.DayOfWeek.Sunday) Then Return False

            '	他の曜日は選択できます
            Return MyBase.ProcessKeyBoardItem(item, shift, control)
        End If

    End Function
End Class
#End Region '   "MySelectionStrategy class"
This example requires that the form on which the control resides implements the ISelectionStrategyFilter interface, i.e.:
public class myForm : System.Windows.Forms.Form, Infragistics.Win.ISelectionStrategyFilter
Inherits System.Windows.Forms.Form
Implements Infragistics.Win.ISelectionStrategyFilter
using Infragistics.Win;
using Infragistics.Win.UltraWinSchedule;
using Infragistics.Win.UltraWinSchedule.MonthViewSingle;
using System.Diagnostics;

	//	1.ISelectionStrategyFilter インターフェイスを実装するには、
	//	以下のカスタム選択方法クラスのインスタンスを返します
	ISelectionStrategy ISelectionStrategyFilter.GetSelectionStrategy( Infragistics.Shared.ISelectableItem item )
	{
		return new MySelectionStrategy( this.ultraMonthViewSingle1 );
	}

	//	2.コントロールの SelectionStrategyFilter プロパティをフォームの
	//	ISelectionStrategyFilter インターフェイスの実装への参照に設定します
	private void button1_Click(object sender, System.EventArgs e)
	{
		this.ultraMonthViewSingle1.SelectionStrategyFilter = this;
	}

	#region MySelectionStrategy class
	/// <summary>
	/// SelectionStrategySingle から派生しますマウスによって日の単一選択を許可します
	/// キーボードによって曜日の選択を有効し、週末の選択を無効にします
	/// </summary>
	public class MySelectionStrategy : Infragistics.Win.SelectionStrategySingle
	{
		
		/// <summary>
		/// MySelectionStrategy クラスの新しいインスタンスを作成します
		/// </summary>
		public MySelectionStrategy( ISelectionManager manager ) : base( manager )
		{
		}
		

		/// <summary>
		/// 選択方法のキーボードの処理を処理しますこのオーバーライドされたバージョンでは、キーボードで週末を選択することはできません
		/// </summary>
		/// <param name="item">選択可能な項目 - Day オブジェクト</param>
		/// <param name="shift">Shift キーが押された場合に True</param>
		/// <param name="control">Control キーが押された場合に True</param>
		/// <returns>操作が成功に実行したかどうかを示すブール値</returns>
		public override bool ProcessKeyBoardItem( Infragistics.Shared.ISelectableItem item, bool shift, bool control )
		{
			//	選択可能な項目の型を決定します。Day オブジェクトの場合、
			//	キーボードで週末を選択することはできません
			Infragistics.Win.UltraWinSchedule.Day day = item as Infragistics.Win.UltraWinSchedule.Day;
			if ( day != null  )
			{
				//	曜日が土曜日または日曜日の場合、False を返します
				//	操作が実行されないことを示します
				if ( day.Date.DayOfWeek == System.DayOfWeek.Saturday ||
					 day.Date.DayOfWeek == System.DayOfWeek.Sunday )
					return false;
			}

			//	他の曜日は選択できます
			return base.ProcessKeyBoardItem( item, shift, control );
		}

	}
	#endregion MySelectionStrategy class
参照