バージョン

SelectDateTimeRange(Owner,DateTime,DateTime) メソッド

指定した Owner による指定した時間の範囲を選択します。
シンタックス
'宣言
 
Public Overloads Function SelectDateTimeRange( _
   ByVal owner As Owner, _
   ByVal startDateTime As Date, _
   ByVal endDateTime As Date _
) As Boolean
public bool SelectDateTimeRange( 
   Owner owner,
   DateTime startDateTime,
   DateTime endDateTime
)

パラメータ

owner
選択を適用する前にアクティブ化される Owner。null だことがあります。この場合は、現在のアクティブなオーナーが選択されます。
startDateTime
範囲の開始の日付と時刻。
endDateTime
範囲の終了の日付と時刻。

戻り値の型

操作が成功にできたかどうかを示すブール値。true が返された場合は、何も変更されなかったことまたは成功にできたことを示します。
解説

owner パラメーターの値に null を指定することによって、ActiveOwner プロパティの値は変更されません。

使用例
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);
    }
参照