バージョン

BeforeDisplayAppointmentDialog イベント

予定ダイアログが表示される前に発生します。
シンタックス
'宣言
 
Public Event BeforeDisplayAppointmentDialog As DisplayAppointmentDialogEventHandler
public event DisplayAppointmentDialogEventHandler BeforeDisplayAppointmentDialog
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、DisplayAppointmentDialogEventArgs 型の引数を受け取りました。次の DisplayAppointmentDialogEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
Appointment Infragistics.Win.UltraWinSchedule.CancelableAppointmentEventArgsから継承されます。イベントに関連付けられたAppointmentオブジェクトを返します。このプロパティは読み取り専用です。
Cancel System.ComponentModel.CancelEventArgsから継承されます。 
IsExistingAppointment CancelableAppointmentEventArgs.Appointment が既存の Appointment オブジェクトかどうかを示します。
RecurrenceEditType 編集時に CancelableAppointmentEventArgs.Appointment をどのように開くかを取得または設定します。
解説

UltraDayView.AutoAppointmentDialogが True の場合に、 DisplayAppointmentDialog(Appointment)メソッドを使用して、UltraDayViewUltraMonthViewSingleUltraWeekView、およびUltraMonthViewMultiによって、AppointmentDialog が表示されます。

新しいまたは既存の Appointment オブジェクトにダイアログが表示されます。既存の Appointment に表示されると、DisplayAppointmentDialogEventArgs.IsExistingAppointment は True を返します。このプロパティが False を返すと、CancelableAppointmentEventArgs.Appointment オブジェクトは、Appointments コレクションに追加されていない新しい Appointment で、ダイアログに表示される値を更新するために Appointment の値は変更されます。

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

	Private Sub ultraCalendarInfo1_BeforeDisplayAppointmentDialog(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinSchedule.DisplayAppointmentDialogEventArgs) Handles ultraCalendarInfo1.BeforeDisplayAppointmentDialog
		'----------------------------------------------------------------------------------------------------
		'	説明
		'	BeforeDisplayAppointmentDialog
		'
		'	Appointment ダイアログが表示される前に発生します
		'	キャンセルされる場合、Appointment ダイアログが表示されずに、AfterDisplayAppointmentDialog イベントも発生しません
		'
		'----------------------------------------------------------------------------------------------------

		If Not e.IsExistingAppointment Then
			If e.Appointment.StartDateTime < DateTime.Today Then
				'	AppointmentDialog の表示を回避するには、Cancel プロパティを
				'	True に設定します
				e.Cancel = True

				'	ユーザーに状態を出力します
				Dim info As String = String.Empty
				info += "Sorry, but you cannot add new appointments in the past."

				MessageBox.Show(info, "BeforeDisplayAppointmentDialog", MessageBoxButtons.OK, MessageBoxIcon.Error)
			End If
		Else
			' ダイアログが既存の予定のために表示する
			' 必要があります

			' これは定期的な予定インスタンスの場合、
			If Not e.Appointment.RecurringAppointmentRoot Is Nothing Then
				' Outlook は、シリーズまたはインスタンスを編集する
				' かどうかを確認するプロンプトを表示しますUltraCalendarInfo では、 
				' イベント引数の 'RecurrenceEditType' を設定すると
				' 動作を処理できます
				'

				' 予定はバリアンス (変更したインスタンス) の場合、
				' インスタンスの情報を編集します
				If e.Appointment.IsVariance Then
					e.RecurrenceEditType = RecurrenceEditType.Occurrence
				Else			 'otherwise, let them edit the series so they don't create variances Then 
					e.RecurrenceEditType = RecurrenceEditType.Series
				End If
			End If
		End If
	End Sub
using System.Diagnostics;
using Infragistics.Shared;
using Infragistics.Win;
using Infragistics.Win.UltraWinSchedule;

		private void ultraCalendarInfo1_BeforeDisplayAppointmentDialog(object sender, Infragistics.Win.UltraWinSchedule.DisplayAppointmentDialogEventArgs e)
		{
			//----------------------------------------------------------------------------------------------------
			//	説明
			//	BeforeDisplayAppointmentDialog
			//
			//	Appointment ダイアログが表示される前に発生します
			//	キャンセルされる場合、Appointment ダイアログが表示されずに、AfterDisplayAppointmentDialog イベントも発生しません
			//
			//----------------------------------------------------------------------------------------------------

			if ( ! e.IsExistingAppointment )
			{
				if (e.Appointment.StartDateTime < DateTime.Today)
				{
					//	AppointmentDialog の表示を回避するには、Cancel プロパティを
					//	True に設定します
					e.Cancel = true;

					//	ユーザーに状態を出力します
					string info = string.Empty;
					info += "Sorry, but you cannot add new appointments in the past.";

					MessageBox.Show( info, "BeforeDisplayAppointmentDialog", MessageBoxButtons.OK, MessageBoxIcon.Error );
				}
			}
			else
			{
				// ダイアログが既存の予定のために表示する
				// 必要があります

				// これは定期的な予定インスタンスの場合、
				if (e.Appointment.RecurringAppointmentRoot != null)
				{
					// Outlook は、シリーズまたはインスタンスを編集する
					// かどうかを確認するプロンプトを表示しますUltraCalendarInfo では、 
					// イベント引数の 'RecurrenceEditType' を設定すると
					// 動作を処理できます
					//

					// 予定はバリアンス (変更したインスタンス) の場合、
					// インスタンスの情報を編集します
					if (e.Appointment.IsVariance)
						e.RecurrenceEditType = RecurrenceEditType.Occurrence;
					else //それ以外の場合、バリアンスを作成しないようにシリーズを編集します
						e.RecurrenceEditType = RecurrenceEditType.Series;
				}
			}
		}
参照