バージョン

FirstVisibleDay プロパティ (UltraMonthViewSingle)

一番上の Week にある一番左の Day を表す Day オブジェクトを返します (読み取り専用)。
シンタックス
'宣言
 
Public Overrides ReadOnly Property FirstVisibleDay As Day
public override Day FirstVisibleDay {get;}
解説

FirstVisibleDay プロパティはランタイムに限って使用でき、読み取り専用です。コントロールの現在の一番上の左の日を表す Day オブジェクトを返すために役に立ちます。

使用例
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports Infragistics.Win.UltraWinSchedule.MonthViewSingle

    Private Function GetLastVisibleDay() As Infragistics.Win.UltraWinSchedule.Day

        '	指定したコントロールは null 値、破棄されているか、破棄された場合、
        '	Nothing を返します
        '	
        If Me.ultraMonthViewSingle1 Is Nothing Or Me.ultraMonthViewSingle1.Disposing Or Me.ultraMonthViewSingle1.IsDisposed Then Return Nothing

        '	FirstVisibleDay プロパティが null 値の場合、続けることができないため、Nothing を返します
        If Me.ultraMonthViewSingle1.FirstVisibleDay Is Nothing Then Return Nothing

        Dim lastDay As DateTime

        '	週に 1 つのみの表示日がある場合、
        '	FirstVisibleDay の日付に週を追加すると、最後の表示日を決定できます
        '	追加する週の数は VisibleWeeks プロパティの値から
        '	1 を引くと、週の数です
        If Me.GetNumberOfVisibleDaysOfWeek() = 1 Then

            '	表示週の 1 つのみがあって、表示日の 1 つのみがある場合、
            '	最後の表示日は最初の表示日と同じです
            '	FirstVisibleDay を返します
            If Me.ultraMonthViewSingle1.VisibleWeeks = 1 Then Return Me.ultraMonthViewSingle1.FirstVisibleDay

            '	FirstVisibleDay の日付に週を追加します
            lastDay = Me.ultraMonthViewSingle1.FirstVisibleDay.Date.AddDays((Me.ultraMonthViewSingle1.VisibleWeeks - 1) * 7)

            '	Day オブジェクトを作成して、それを返します。Day オブジェクトを作成することを
            '	確認するために、createlfNull パラメーターに True を渡すことに注意します
            Return Me.ultraMonthViewSingle1.CalendarInfo.GetDay(lastDay, True)

        End If

        '	コントロールの最初の表示日の日付を取得します
        Dim firstDay As DateTime = Me.ultraMonthViewSingle1.FirstVisibleDay.Date

        '	コントロールの最初の曜日を決定します
        Dim dayOfWeek As System.DayOfWeek = firstDay.DayOfWeek

        '	コントロールの最後の表示可能な曜日の DayOfWeek を決定します
        '
        '	最初の表示日の 1 つの週の後の日で開始して、
        '	対応する DayOfWeek オブジェクトが表示される日を検索するまでに
        '	以前の日に移動します
        lastDay = firstDay.AddDays(7)
        Dim i As Integer
        For i = 1 To 6
            lastDay = lastDay.AddDays(-1)
            If Me.ultraMonthViewSingle1.CalendarInfo.DaysOfWeek(lastDay.DayOfWeek).Visible Then Exit For
        Next

        '	最初の表示日と同じ週にある最後の表示日の日付を決定したので、
        '	コントロールで表示される最後の日を決定するには、
        '	その日付に週を追加します
        lastDay = lastDay.AddDays((Me.ultraMonthViewSingle1.VisibleWeeks - 1) * 7)

        '	Day オブジェクトを作成して、それを返します。Day オブジェクトを作成することを
        '	確認するために、createlfNull パラメーターに True を渡すことに注意します
        Return Me.ultraMonthViewSingle1.CalendarInfo.GetDay(lastDay, True)

    End Function

    Private Function GetNumberOfVisibleDaysOfWeek() As Integer

        '--------------------------------------------------------------------------------
        '	コントロールで表示される曜日の数を返します
        '--------------------------------------------------------------------------------

        '	指定したコントロールは null 値、破棄されているか、破棄された場合、
        '	0 を返します
        '	
        If Me.ultraMonthViewSingle1 Is Nothing Or Me.ultraMonthViewSingle1.Disposing Or Me.ultraMonthViewSingle1.IsDisposed Then Return 0

        '	CalendarInfo オブジェクトの DaysOfWeek コレクションを繰り返して、
        '	その Visible プロパティが True の DayOfWeek を検索する場合、
        '	カウンターを増加します
        Dim count As Integer = 0
        Dim dayOfWeek As Infragistics.Win.UltraWinSchedule.DayOfWeek
        For Each dayOfWeek In Me.ultraMonthViewSingle1.CalendarInfo.DaysOfWeek

            If dayOfWeek.Visible Then count += 1

        Next

        '	表示される DayOfWeek オブジェクトの合計を返します
        Return count

    End Function
using Infragistics.Win;
using Infragistics.Win.UltraWinSchedule;
using Infragistics.Win.UltraWinSchedule.MonthViewSingle;
using System.Diagnostics;

		private Infragistics.Win.UltraWinSchedule.Day GetLastVisibleDay()
		{

			//	指定したコントロールは null 値、破棄されているか、破棄された場合、
			//	null 値を返します
			//	
			if ( this.ultraMonthViewSingle1 == null ||
				 this.ultraMonthViewSingle1.Disposing ||
				 this.ultraMonthViewSingle1.IsDisposed )
				return null;

			//	FirstVisibleDay プロパティが null 値の場合、続けることができないため、null 値を返します
			if ( this.ultraMonthViewSingle1.FirstVisibleDay == null )
				return null;

			DateTime lastDay;

			//	週に表示日が1 日のみの場合、
			//	FirstVisibleDay の日付に週を追加すると、最後の表示日を決定できます
			//	追加する週の数は VisibleWeeks プロパティの値から
			//	1 を引くと、週の数になります
			if ( this.GetNumberOfVisibleDaysOfWeek() == 1 )
			{
				//	表示週が 1 週のみで、表示日も 1 日のみの場合、
				//	最後の表示日は最初の表示日と同じです
				//	FirstVisibleDay を返します
				if ( this.ultraMonthViewSingle1.VisibleWeeks == 1 )
					return this.ultraMonthViewSingle1.FirstVisibleDay;

				//	FirstVisibleDay の日付に週を追加します
				lastDay = this.ultraMonthViewSingle1.FirstVisibleDay.Date.AddDays( (double)( (this.ultraMonthViewSingle1.VisibleWeeks - 1) * 7 ) );

				//	Day オブジェクトを作成して、それを返します。Day オブジェクトを作成することを
				//	確認するために、createlfNull パラメーターに True を渡すことに注意します
				return this.ultraMonthViewSingle1.CalendarInfo.GetDay( lastDay, true );

			}

			//	コントロールの最初の表示日の日付を取得します
			DateTime firstDay = this.ultraMonthViewSingle1.FirstVisibleDay.Date;
			
			//	コントロールの最初の曜日を決定します
			System.DayOfWeek dayOfWeek = firstDay.DayOfWeek;

			//	コントロールの最後の表示可能な曜日の DayOfWeek を決定します
			//
			//	最初の表示日の 1 つの週の後の日で開始して、
			//	対応する DayOfWeek オブジェクトが表示される日が見つかるまで
			//	前の日へ移動します
			lastDay = firstDay.AddDays( 7.0F );
			for ( int i = 1; i <  7; i ++ )
			{
				lastDay = lastDay.AddDays( (double)( -1 ) );
				if ( this.ultraMonthViewSingle1.CalendarInfo.DaysOfWeek[ lastDay.DayOfWeek ].Visible )
					break;				
			}			

			//	最初の表示日と同じ週にある最後の表示日の日付を決定したため、
			//	コントロールで表示される最後の日を決定するには、
			//	その日付に週を追加します
			lastDay = lastDay.AddDays( (double)( (this.ultraMonthViewSingle1.VisibleWeeks - 1) * 7 ) );

			//	Day オブジェクトを作成して、それを返します。Day オブジェクトを作成することを
			//	確認するために、createlfNull パラメーターに True を渡すことに注意します
			return this.ultraMonthViewSingle1.CalendarInfo.GetDay( lastDay, true );

		}

		private int GetNumberOfVisibleDaysOfWeek()
		{

			//--------------------------------------------------------------------------------
			//
			//	コントロールで表示される曜日の数を返します
			//
			//--------------------------------------------------------------------------------

			//	指定したコントロールは null 値、破棄されているか、破棄された場合、
			//	0 を返します
			//	
			if ( this.ultraMonthViewSingle1 == null ||
				 this.ultraMonthViewSingle1.Disposing ||
				 this.ultraMonthViewSingle1.IsDisposed )
				return 0;

			//	CalendarInfo オブジェクトの DaysOfWeek コレクションを繰り返して、
			//	その Visible プロパティが True の DayOfWeek を検索する場合、
			//	カウンターを増加します
			int count = 0;
			foreach( Infragistics.Win.UltraWinSchedule.DayOfWeek dayOfWeek in this.ultraMonthViewSingle1.CalendarInfo.DaysOfWeek )
			{
				if ( dayOfWeek.Visible )
					count ++;
				
			}

			//	表示される DayOfWeek オブジェクトの合計を返します
			return count;

		}
参照