'宣言 Public Property SelectionStrategyFilter As Infragistics.Win.ISelectionStrategyFilter
public Infragistics.Win.ISelectionStrategyFilter SelectionStrategyFilter {get; set;}
SelectionStrategyFilter プロパティは、カスタマイズされた選択方式を実装するために使用できます。
非標準の選択規則が必要な場合にこれは役に立ちます。
この例によって、Ctrl または Shift キーを使用せずに複数項目を選択できます。
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"
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