バージョン

SelectedDateTimeRangeChanged イベント

SelectedDateTimeRange に返却される日付の範囲が変更された後に発生します。
シンタックス
'宣言
 
Public Event SelectedDateTimeRangeChanged As SelectedDateTimeRangeChangedHandler
public event SelectedDateTimeRangeChangedHandler SelectedDateTimeRangeChanged
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、SelectedDateTimeRangeChangedEventArgs 型の引数を受け取りました。次の SelectedDateTimeRangeChangedEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
IsChangingActiveOwner 日付/時刻の選択の変更は ActiveOwner の変更によって初期化されたかどうかを返します。
Range 新しい日付/時刻の範囲を返します。選択された日付の範囲をクリアした場合は、このプロパティは null の参照を返します。
使用例
Imports System.Collections.Generic
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports System.Diagnostics

    Public Sub SelectDateTimeRange(ByVal control As UltraTimelineView, ByVal range As DateTimeRange)

        '  Handle the SelectedDateTimeRangeChanging event
        RemoveHandler control.SelectedDateTimeRangeChanging, AddressOf Me.OnSelectedDateTimeRangeChanging
        AddHandler control.SelectedDateTimeRangeChanging, AddressOf Me.OnSelectedDateTimeRangeChanging

        '  If the caller did not specify a range, use the default,
        '  i.e., the working hour range of the current day.
        If range Is Nothing Then
            Dim calendarInfo As UltraCalendarInfo = control.CalendarInfo
            Dim dow As Infragistics.Win.UltraWinSchedule.DayOfWeek = calendarInfo.DaysOfWeek(DateTime.Today.DayOfWeek)
            Dim start As DateTime = DateTime.Today.Add(dow.WorkDayStartTime.TimeOfDay)
            Dim _end As DateTime = DateTime.Today.Add(dow.WorkDayEndTime.TimeOfDay).AddSeconds(-1)
            range = New DateTimeRange(start, _end)
        End If

        '  Select the range programmatically
        control.SelectDateTimeRange(range.StartDateTime, range.EndDateTime)
    End Sub

    Private Sub OnSelectedDateTimeRangeChanging(ByVal sender As Object, ByVal e As SelectedDateTimeRangeChangingEventArgs)

        '  If no listeners have canceled the SelectedDateTimeRangeChanging
        '  event, hook the SelectedDateTimeRangeChanged event so we get a
        '  notification after it has changed.
        If e.Cancel = False Then
            Dim control As UltraTimelineView = sender
            AddHandler control.SelectedDateTimeRangeChanged, AddressOf Me.OnSelectedDateTimeRangeChanged
        End If
    End Sub

    Private Sub OnSelectedDateTimeRangeChanged(ByVal sender As Object, ByVal e As SelectedDateTimeRangeChangedEventArgs)

        '  Format the selected date/time range and set the text
        '  of the label control that is used to display it.
        '  Adjust the end time if the PrimaryInterval is a TimeInterval,
        '  so that instead of '9AM - 9:59AM', the user sees '9AM - 10AM'.
        Dim control As UltraTimelineView = sender
        Dim adjustEndTime As Boolean = (control.PrimaryInterval.GetType() Is GetType(TimeInterval))
        Me.lblSelectedRange.Text = DateTimeRange.Format(e.Range.StartDateTime, e.Range.EndDateTime, DateTimeRange.Separator, adjustEndTime)

        '  Detach the event handler
        RemoveHandler control.SelectedDateTimeRangeChanged, AddressOf Me.OnSelectedDateTimeRangeChanged
    End Sub
using System.Collections.Generic;
using Infragistics.Win;
using Infragistics.Win.UltraWinSchedule;
using System.Diagnostics;

    public void SelectDateTimeRange( UltraTimelineView control, DateTimeRange range )
    {
        //  Handle the SelectedDateTimeRangeChanging event
        control.SelectedDateTimeRangeChanging -= new SelectedDateTimeRangeChangingHandler(this.OnSelectedDateTimeRangeChanging);
        control.SelectedDateTimeRangeChanging += new SelectedDateTimeRangeChangingHandler(this.OnSelectedDateTimeRangeChanging);

        //  If the caller did not specify a range, use the default,
        //  i.e., the working hour range of the current day.
        if ( range == null )
        {
            UltraCalendarInfo calendarInfo = control.CalendarInfo;
            Infragistics.Win.UltraWinSchedule.DayOfWeek dow = calendarInfo.DaysOfWeek[DateTime.Today.DayOfWeek];
            DateTime start = DateTime.Today.Add( dow.WorkDayStartTime.TimeOfDay );
            DateTime end = DateTime.Today.Add( dow.WorkDayEndTime.TimeOfDay ).AddSeconds( -1 );
            range = new DateTimeRange( start, end );
        }

        //  Select the range programmatically
        control.SelectDateTimeRange( range.StartDateTime, range.EndDateTime );
    }

    private void OnSelectedDateTimeRangeChanging(object sender, SelectedDateTimeRangeChangingEventArgs e)
    {
        //  If no listeners have canceled the SelectedDateTimeRangeChanging
        //  event, hook the SelectedDateTimeRangeChanged event so we get a
        //  notification after it has changed.
        if ( e.Cancel == false )
        {
            UltraTimelineView control = sender as UltraTimelineView;
            control.SelectedDateTimeRangeChanged += new SelectedDateTimeRangeChangedHandler(this.OnSelectedDateTimeRangeChanged);
        }
    }

    private void OnSelectedDateTimeRangeChanged(object sender, SelectedDateTimeRangeChangedEventArgs e)
    {
        //  Format the selected date/time range and set the text
        //  of the label control that is used to display it.
        //  Adjust the end time if the PrimaryInterval is a TimeInterval,
        //  so that instead of '9AM - 9:59AM', the user sees '9AM - 10AM'.
        UltraTimelineView control = sender as UltraTimelineView;
        bool adjustEndTime = control.PrimaryInterval is TimeInterval;
        this.lblSelectedRange.Text = DateTimeRange.Format( e.Range.StartDateTime, e.Range.EndDateTime, DateTimeRange.Separator, adjustEndTime );

        //  Detach the event handler
        control.SelectedDateTimeRangeChanged -= new SelectedDateTimeRangeChangedHandler(this.OnSelectedDateTimeRangeChanged);
    }
参照