バージョン

OnValidateAppointment メソッド

Appointment における AppointmentDialog の変更がコミットされる前に ValidateAppointment イベントを発生させます。
シンタックス
'宣言
 
Protected Overridable Sub OnValidateAppointment( _
   ByVal e As ValidateAppointmentEventArgs _
) 
protected virtual void OnValidateAppointment( 
   ValidateAppointmentEventArgs e
)

パラメータ

e
イベントのデータを提供する ValidateAppointmentEventArgs
解説

イベントが発生すると、デリゲートを通じてイベント ハンドラーが呼び出されます。

OnValidateAppointment メソッドを使用すれば、デリゲートを関連付けなくても、派生クラスでイベントを処理できます。これは、派生クラスでイベントを処理する際によく用いられる手法です。

継承時の注意: 派生クラスで OnValidateAppointment をオーバーライドする場合は、登録されたデリゲートがイベントを受信できるようにするため、必ず基本クラスの OnValidateAppointment メソッドを呼び出してください。

使用例
Imports Infragistics.Shared
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports System.Diagnostics

    Private Sub ultraCalendarInfo1_ValidateAppointment(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinSchedule.ValidateAppointmentEventArgs) Handles ultraCalendarInfo1.ValidateAppointment

        '----------------------------------------------------------------------------------------------------
        '	説明
        '	ValidateAppointment
        '
        '	Appointment オブジェクトが Appointment ダイアログで変更されたときに発生します
        '
        '----------------------------------------------------------------------------------------------------

        '	SaveChanges プロパティは、条件付きの変更を
        '	予定で許可するために使用できます
        If (Not e.Appointment.Tag Is Nothing) Then

            Dim userID As String = e.Appointment.Tag

            '	ユーザーが管理者ではない場合、変更は保存されません
            If (userID.ToLower() <> "admin") Then

                MessageBox.Show("You must have administrator rights to modify this Appointment.", "ValidateAppointment", MessageBoxButtons.OK, MessageBoxIcon.Error)
                e.SaveChanges = False
                Return
            End If
        End If

        '	CloseDialog プロパティを使用すると、Appointment オブジェクトの
        '	状態が特定の条件を満たすまでダイアログは
        '	開かれたままです
        If (e.Appointment.Description Is Nothing Or e.Appointment.Description.Length = 0) Then

            MessageBox.Show("You must enter a Description for this Appointment.", "ValidateAppointment", MessageBoxButtons.OK, MessageBoxIcon.Error)
            e.CloseDialog = False
            Return
        End If

        '	OriginalAppointment プロパティを使用すると、予定オブジェクトに
        '	加えられた変更を決定します
        Dim info As String = String.Empty
        If (e.OriginalAppointment.StartDateTime <> e.Appointment.StartDateTime) Then
            info += "The appointment's StartDateTime has changed." + vbCrLf
        End If
        If (e.OriginalAppointment.EndDateTime <> e.Appointment.EndDateTime) Then
            info += "The appointment's EndDateTime has changed." + vbCrLf
        End If

        If (e.OriginalAppointment.Subject <> e.Appointment.Subject) Then
            info += "The appointment's Subject has changed." + vbCrLf
        End If

        If (e.OriginalAppointment.Location <> e.Appointment.Location) Then
            info += "The appointment's Location has changed." + vbCrLf
        End If

        If (e.OriginalAppointment.Description <> e.Appointment.Description) Then
            info += "The appointment's Description has changed." + vbCrLf
        End If

        '	重要なプロパティが変更された場合、エンド ユーザーに通知します
        If (info.Length > 0) Then
            MessageBox.Show(info, "ValidateAppointment", MessageBoxButtons.OK)
        End If

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

		private void ultraCalendarInfo1_ValidateAppointment(object sender, Infragistics.Win.UltraWinSchedule.ValidateAppointmentEventArgs e)
		{

			//----------------------------------------------------------------------------------------------------
			//	説明
			//	ValidateAppointment
			//
			//	Appointment オブジェクトが Appointment ダイアログで変更されたときに発生します
			//
			//----------------------------------------------------------------------------------------------------
			
			//	SaveChanges プロパティは、条件付きの変更を
			//	予定で許可するために使用できます
			if ( e.Appointment.Tag is string )
			{
				string userID = e.Appointment.Tag as string;

				//	ユーザーが管理者ではない場合、変更は保存されません
				if ( userID.ToLower() != "admin" )
				{
					MessageBox.Show( "You must have administrator rights to modify this Appointment.", "ValidateAppointment", MessageBoxButtons.OK, MessageBoxIcon.Error );
					e.SaveChanges = false;
					return;
				}
			}

			//	CloseDialog プロパティを使用すると、Appointment オブジェクトの
			//	状態が特定の条件を満たすまでダイアログは
			//	開かれたままです
			if ( e.Appointment.Description == null ||
				 e.Appointment.Description.Length == 0 )
			{
				MessageBox.Show( "You must enter a Description for this Appointment.", "ValidateAppointment", MessageBoxButtons.OK, MessageBoxIcon.Error );
				e.CloseDialog = false;
				return;
			}
				 
			//	OriginalAppointment プロパティを使用すると、予定オブジェクトに
			//	加えられた変更を決定します
			string info = string.Empty;
			if ( e.OriginalAppointment.StartDateTime != e.Appointment.StartDateTime)
				info += "The appointment's StartDateTime has changed." + "\n";

			if ( e.OriginalAppointment.EndDateTime != e.Appointment.EndDateTime)
				info += "The appointment's EndDateTime has changed." + "\n";

			if ( e.OriginalAppointment.Subject != e.Appointment.Subject )
				info += "The appointment's Subject has changed." + "\n";

			if ( e.OriginalAppointment.Location != e.Appointment.Location )
				info += "The appointment's Location has changed." + "\n";

			if ( e.OriginalAppointment.Description != e.Appointment.Description )
				info += "The appointment's Description has changed." + "\n";

			//	重要なプロパティが変更された場合、エンド ユーザーに通知します
			if ( info.Length > 0 )
				MessageBox.Show( info, "ValidateAppointment", MessageBoxButtons.OK );

		}
参照