バージョン

ScrollDayIntoView メソッド (UltraWeekView)

渡された日付を表示領域にスクロールします。すでに表示されている場合、このメソッドは何も行わずに戻ります。表示されていない場合は、渡された日付を含む Week が、VisibleWeek にされます。
シンタックス
'宣言
 
Public Sub ScrollDayIntoView( _
   ByVal date As Date _
) 
public void ScrollDayIntoView( 
   DateTime date
)

パラメータ

date
スクロールして表示される Day の日付。
使用例
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports Infragistics.Win.UltraWinSchedule.WeekView

    Private Sub OptimizeControlForAppointmentDisplay()

        Dim yesterday As DateTime = DateTime.Today.AddDays(-1)
        Dim today As DateTime = DateTime.Today
        Dim tomorrow As DateTime = DateTime.Today.AddDays(1)
        Dim i As Integer

        '	アクティビティを追加します
        '	予定の追加
        If Me.ultraWeekView.CalendarInfo.Appointments.Count = 0 Then

            For i = 1 To 5
                Me.ultraWeekView.CalendarInfo.Appointments.Add(yesterday, "Yesterday's appointment " + i.ToString())
            Next

            For i = 1 To 3
                Me.ultraWeekView.CalendarInfo.Appointments.Add(today, "Today's appointment " + i.ToString())
            Next

            For i = 1 To 10
                Me.ultraWeekView.CalendarInfo.Appointments.Add(tomorrow, "Tomorrow's appointment " + i.ToString())
            Next
        End If

        '	メモの追加
        If Me.ultraWeekView.CalendarInfo.Notes.Count = 0 Then

            Me.ultraWeekView.CalendarInfo.Notes.Add(yesterday, "Yesterday's note " + i.ToString())

            For i = 1 To 2
                Me.ultraWeekView.CalendarInfo.Notes.Add(today, "Today's note " + i.ToString())
            Next
            For i = 1 To 5
                Me.ultraWeekView.CalendarInfo.Notes.Add(tomorrow, "Tomorrow's note " + i.ToString())
            Next
        End If

        '	休日の追加
        If Me.ultraWeekView.CalendarInfo.Holidays.Count = 0 Then
            Me.ultraWeekView.CalendarInfo.Holidays.Add(yesterday, "My 2-day Holiday")
        End If

        '	最もアクティビティがある日を決定します
        '	すべての予定の StartDateTime プロパティにある特定の日付の発生を
        '	カウントし、最も発生が多い日を
        '	トラックします。
        '	
        Dim dateWithMostActivity As DateTime = DateTime.Today
        Dim count As Integer = 0
        Dim tempCount As Integer = 0
        Dim outer As Appointment
        Dim inner As Appointment
        For Each outer In Me.ultraWeekView.CalendarInfo.Appointments
            tempCount = 0
            For Each inner In Me.ultraWeekView.CalendarInfo.Appointments
                If inner.StartDateTime.Date = outer.StartDateTime Then tempCount += 1
            Next
            '	この日付に以前の日付より予定が多くある場合、
            '	カウントを変更し、新しい dateWithMostActivity を設定します
            If tempCount > count Then
                count = tempCount
                dateWithMostActivity = outer.StartDateTime
            End If
        Next

        '	予定がない場合、何もせずに返します
        If count = 0 Then Return

        '	CalendarInfo オブジェクトの FirstDayOfWeek プロパティを
        '	最も予定がある曜日に設定します
        Me.ultraWeekView.CalendarInfo.FirstDayOfWeek = dateWithMostActivity.DayOfWeek

        '	表示する曜日以外のすべての DayOfWeek オブジェクトの Visible プロパティを
        '	False に設定します
        Dim dow As Infragistics.Win.UltraWinSchedule.DayOfWeek
        For Each dow In Me.ultraWeekView.CalendarInfo.DaysOfWeek
            If dow.DayOfTheWeek <> dateWithMostActivity.DayOfWeek Then dow.Visible = False Else dow.Visible = True
        Next

        '	CalendarInfo オブジェクトの ActiveDay プロパティを
        '	最もアクティビティがある日に設定します
        Me.ultraWeekView.CalendarInfo.ActiveDay = Me.ultraWeekView.CalendarInfo.GetDay(dateWithMostActivity, True)

        '	その日をビューへ移動して表示します
        Me.ultraWeekView.ScrollDayIntoView(dateWithMostActivity)

        '	コントロールで予定の表示を最適化するために、
        '	コントロールの ActivityDisplayStyle プロパティを設定すると、
        '	他のアクティビティ (メモおよび休日) は表されません
        Me.ultraWeekView.ActivityDisplayStyle = ActivityDisplayStyleEnum.Appointments

        '	表示を更新するには、すべての UIElements をダーティして確認します
        Me.ultraWeekView.UIElement.DirtyChildElements()
        Me.ultraWeekView.UIElement.VerifyChildElements()

        '   DayDisplayStyle プロパティを Full に設定します
        Me.ultraWeekView.DayDisplayStyle = DayDisplayStyleEnum.Full

    End Sub
using Infragistics.Win;
using Infragistics.Win.UltraWinSchedule;
using Infragistics.Win.UltraWinSchedule.WeekView;
using System.Diagnostics;

		private void OptimizeControlForAppointmentDisplay()
		{

			DateTime yesterday = DateTime.Today.AddDays( -1.0F );
			DateTime today = DateTime.Today;
			DateTime tomorrow = DateTime.Today.AddDays( 1.0F );

			//	アクティビティを追加します
			//	予定の追加
			if ( this.ultraWeekView.CalendarInfo.Appointments.Count == 0 )
			{
				for ( int i = 1; i <= 5; i ++ )
					this.ultraWeekView.CalendarInfo.Appointments.Add(yesterday, "Yesterday's appointment " + i.ToString() );

				for ( int i = 1; i <= 3; i ++ )
					this.ultraWeekView.CalendarInfo.Appointments.Add(today, "Today's appointment " + i.ToString() );

				for ( int i = 1; i <= 10; i ++ )
					this.ultraWeekView.CalendarInfo.Appointments.Add(tomorrow, "Tomorrow's appointment " + i.ToString() );
			}

			//	メモの追加
			if ( this.ultraWeekView.CalendarInfo.Notes.Count == 0 )
			{
				for ( int i = 1; i <= 1; i ++ )
					this.ultraWeekView.CalendarInfo.Notes.Add(yesterday, "Yesterday's note " + i.ToString() );

				for ( int i = 1; i <= 2; i ++ )
					this.ultraWeekView.CalendarInfo.Notes.Add(today, "Today's note " + i.ToString() );

				for ( int i = 1; i <= 5; i ++ )
					this.ultraWeekView.CalendarInfo.Notes.Add(tomorrow, "Tomorrow's note " + i.ToString() );
			}

			//	休日の追加
			if ( this.ultraWeekView.CalendarInfo.Holidays.Count == 0 )
				this.ultraWeekView.CalendarInfo.Holidays.Add(yesterday, "My 2-day Holiday" );


			//	最もアクティビティがある日を決定します
			//	すべての予定の StartDateTime プロパティにある特定の日付の発生を
			//	カウントし、最も発生が多い日を
			//	トラックします。
			//	
			DateTime dateWithMostActivity = DateTime.Today;
			int count = 0, tempCount = 0;
			foreach( Appointment outer in this.ultraWeekView.CalendarInfo.Appointments )
			{
				tempCount = 0;
				foreach( Appointment inner in this.ultraWeekView.CalendarInfo.Appointments )
				{
					if ( inner.StartDateTime.Date == outer.StartDateTime.Date )
						tempCount++;
				}

				//	この日付に以前の日付より予定が多くある場合、
				//	カウントを変更し、新しい dateWithMostActivity を設定します
				if ( tempCount > count )
				{
					count = tempCount;
					dateWithMostActivity = outer.StartDateTime;
				}
			}

			//	予定がない場合、何もせずに返します
			if ( count == 0 )
				return;

			//	CalendarInfo オブジェクトの FirstDayOfWeek プロパティを
			//	最も予定がある曜日に設定します
			this.ultraWeekView.CalendarInfo.FirstDayOfWeek = (FirstDayOfWeek)( dateWithMostActivity.DayOfWeek );

			//	表示する曜日以外のすべての DayOfWeek オブジェクトの Visible プロパティを
			//	False に設定します
			foreach( Infragistics.Win.UltraWinSchedule.DayOfWeek dow in this.ultraWeekView.CalendarInfo.DaysOfWeek )
			{
				if ( (int)(dow.DayOfTheWeek) != (int)(dateWithMostActivity.DayOfWeek) )
					dow.Visible = false;
				else
					dow.Visible = true;
			}

			//	CalendarInfo オブジェクトの ActiveDay プロパティを
			//	最もアクティビティがある日に設定します
			this.ultraWeekView.CalendarInfo.ActiveDay = this.ultraWeekView.CalendarInfo.GetDay( dateWithMostActivity, true );

			//	その日をビューへ移動して表示します
			this.ultraWeekView.ScrollDayIntoView( dateWithMostActivity );

			//	コントロールで予定の表示を最適化するために、
			//	コントロールの ActivityDisplayStyle プロパティを設定すると、
			//	他のアクティビティ (メモおよび休日) は表されません
			this.ultraWeekView.ActivityDisplayStyle = ActivityDisplayStyleEnum.Appointments;

			//	表示を更新するには、すべての UIElements をダーティして確認します
			this.ultraWeekView.UIElement.DirtyChildElements();
			this.ultraWeekView.UIElement.VerifyChildElements();

			//   DayDisplayStyle プロパティを Full に設定します
			this.ultraWeekView.DayDisplayStyle = DayDisplayStyleEnum.Full;

		}
参照