バージョン

SelectedDateTimeRange プロパティ

現在に選択される時間間隔を表すオブジェクトを表します。または日付/時刻の選択がない場合は、null。
シンタックス
'宣言
 
Public ReadOnly Property SelectedDateTimeRange As DateTimeRange
public DateTimeRange SelectedDateTimeRange {get;}
解説

日付および時刻の不連続の選択を対応しません。開発者が日付/時刻の選択方式を変更できるためのプロパティは存在しません。

日付および時刻の不連続の選択を対応しませんので、1 つのオブジェクトは完全に現在の選択を表すことができます。SelectedDateTimeRange プロパティは複数の日を及べる範囲の開始および終了を返します。

SelectDateTimeRange メソッドを呼び出すことによって、日付/時刻の選択を動的に変更できます。ClearSelectedDateTimeRange メソッドを呼び出すことによって、クリアできます。

注: SelectedDateTimeRange をクリアしたとき後に、範囲を明示的に設定するまでこのプロパティは null を返しますClearSelectedDateTimeRange メソッドを呼び出すことによって日付/時刻の選択を動的にクリアできます。または、ユーザーは Appointment または Holiday を選択することまたはヘッダーのクリックによって Owner をアクティブ化することによって、クリアします。

SelectedDateTimeRange プロパティはランタイムに限って使用できます。デフォルト値は 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);
    }
参照