When the AppointmentDialog contains invalid values in one or more of its fields, this property can assume a default value of false; for example, if an appointment's Appointment.StartDateTime or Appointment.EndDateTime property is outside the range defined by the associated CalendarInfo's LogicalDayOffset and LogicalDayDuration properties. Listeners can, however, set the SaveChanges property to a different value to override the default behavior.
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 '---------------------------------------------------------------------------------------------------- ' Description ' ValidateAppointment ' ' Fires when an Appointment object is modified via the Appointment dialog ' '---------------------------------------------------------------------------------------------------- ' The SaveChanges property can be used to conditionally allow ' changes to be made to the appointment If (Not e.Appointment.Tag Is Nothing) Then Dim userID As String = e.Appointment.Tag ' If the user is not an administrator, don't save changes 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 ' The CloseDialog property can be used to keep the dialog ' open until the state of the Appointment object meets ' certain requirements 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 ' The OriginalAppointment property can be used to determine what changes, ' if any, were made to the appointment object 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 any of the properties we are concerned with changed, notify the end user 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) { //---------------------------------------------------------------------------------------------------- // Description // ValidateAppointment // // Fires when an Appointment object is modified via the Appointment dialog // //---------------------------------------------------------------------------------------------------- // The SaveChanges property can be used to conditionally allow // changes to be made to the appointment if ( e.Appointment.Tag is string ) { string userID = e.Appointment.Tag as string; // If the user is not an administrator, don't save changes if ( userID.ToLower() != "admin" ) { MessageBox.Show( "You must have administrator rights to modify this Appointment.", "ValidateAppointment", MessageBoxButtons.OK, MessageBoxIcon.Error ); e.SaveChanges = false; return; } } // The CloseDialog property can be used to keep the dialog // open until the state of the Appointment object meets // certain requirements 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; } // The OriginalAppointment property can be used to determine what changes, // if any, were made to the appointment object 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 any of the properties we are concerned with changed, notify the end user if ( info.Length > 0 ) MessageBox.Show( info, "ValidateAppointment", MessageBoxButtons.OK ); }
Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2